diff --git a/.gitignore b/.gitignore index 8d87b564..1cc82b66 100644 --- a/.gitignore +++ b/.gitignore @@ -18,7 +18,7 @@ Thumbs.db node_modules ./srcs/requirement/nestjs/api_back/dist -./srcs/requirements/svelte/api_front/public/build/* +./srcs/requirements/svelte/api_front/public/build/ # Logs logs diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js deleted file mode 100644 index 4eda85d8..00000000 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ /dev/null @@ -1,24290 +0,0 @@ - -(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); -var app = (function () { - 'use strict'; - - function noop() { } - const identity = x => x; - function assign(tar, src) { - // @ts-ignore - for (const k in src) - tar[k] = src[k]; - return tar; - } - function is_promise(value) { - return value && typeof value === 'object' && typeof value.then === 'function'; - } - function add_location(element, file, line, column, char) { - element.__svelte_meta = { - loc: { file, line, column, char } - }; - } - function run(fn) { - return fn(); - } - function blank_object() { - return Object.create(null); - } - function run_all(fns) { - fns.forEach(run); - } - function is_function(thing) { - return typeof thing === 'function'; - } - function safe_not_equal(a, b) { - return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); - } - let src_url_equal_anchor; - function src_url_equal(element_src, url) { - if (!src_url_equal_anchor) { - src_url_equal_anchor = document.createElement('a'); - } - src_url_equal_anchor.href = url; - return element_src === src_url_equal_anchor.href; - } - function is_empty(obj) { - return Object.keys(obj).length === 0; - } - function validate_store(store, name) { - if (store != null && typeof store.subscribe !== 'function') { - throw new Error(`'${name}' is not a store with a 'subscribe' method`); - } - } - function subscribe(store, ...callbacks) { - if (store == null) { - return noop; - } - const unsub = store.subscribe(...callbacks); - return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; - } - function component_subscribe(component, store, callback) { - component.$$.on_destroy.push(subscribe(store, callback)); - } - function create_slot(definition, ctx, $$scope, fn) { - if (definition) { - const slot_ctx = get_slot_context(definition, ctx, $$scope, fn); - return definition[0](slot_ctx); - } - } - function get_slot_context(definition, ctx, $$scope, fn) { - return definition[1] && fn - ? assign($$scope.ctx.slice(), definition[1](fn(ctx))) - : $$scope.ctx; - } - function get_slot_changes(definition, $$scope, dirty, fn) { - if (definition[2] && fn) { - const lets = definition[2](fn(dirty)); - if ($$scope.dirty === undefined) { - return lets; - } - if (typeof lets === 'object') { - const merged = []; - const len = Math.max($$scope.dirty.length, lets.length); - for (let i = 0; i < len; i += 1) { - merged[i] = $$scope.dirty[i] | lets[i]; - } - return merged; - } - return $$scope.dirty | lets; - } - return $$scope.dirty; - } - function update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) { - if (slot_changes) { - const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn); - slot.p(slot_context, slot_changes); - } - } - function get_all_dirty_from_scope($$scope) { - if ($$scope.ctx.length > 32) { - const dirty = []; - const length = $$scope.ctx.length / 32; - for (let i = 0; i < length; i++) { - dirty[i] = -1; - } - return dirty; - } - return -1; - } - function null_to_empty(value) { - return value == null ? '' : value; - } - function action_destroyer(action_result) { - return action_result && is_function(action_result.destroy) ? action_result.destroy : noop; - } - - const is_client = typeof window !== 'undefined'; - let now = is_client - ? () => window.performance.now() - : () => Date.now(); - let raf = is_client ? cb => requestAnimationFrame(cb) : noop; - - const tasks = new Set(); - function run_tasks(now) { - tasks.forEach(task => { - if (!task.c(now)) { - tasks.delete(task); - task.f(); - } - }); - if (tasks.size !== 0) - raf(run_tasks); - } - /** - * Creates a new task that runs on each raf frame - * until it returns a falsy value or is aborted - */ - function loop(callback) { - let task; - if (tasks.size === 0) - raf(run_tasks); - return { - promise: new Promise(fulfill => { - tasks.add(task = { c: callback, f: fulfill }); - }), - abort() { - tasks.delete(task); - } - }; - } - function append(target, node) { - target.appendChild(node); - } - function get_root_for_style(node) { - if (!node) - return document; - const root = node.getRootNode ? node.getRootNode() : node.ownerDocument; - if (root && root.host) { - return root; - } - return node.ownerDocument; - } - function append_empty_stylesheet(node) { - const style_element = element('style'); - append_stylesheet(get_root_for_style(node), style_element); - return style_element.sheet; - } - function append_stylesheet(node, style) { - append(node.head || node, style); - return style.sheet; - } - function insert(target, node, anchor) { - target.insertBefore(node, anchor || null); - } - function detach(node) { - if (node.parentNode) { - node.parentNode.removeChild(node); - } - } - function destroy_each(iterations, detaching) { - for (let i = 0; i < iterations.length; i += 1) { - if (iterations[i]) - iterations[i].d(detaching); - } - } - function element(name) { - return document.createElement(name); - } - function svg_element(name) { - return document.createElementNS('http://www.w3.org/2000/svg', name); - } - function text(data) { - return document.createTextNode(data); - } - function space() { - return text(' '); - } - function empty$1() { - return text(''); - } - function listen(node, event, handler, options) { - node.addEventListener(event, handler, options); - return () => node.removeEventListener(event, handler, options); - } - function prevent_default(fn) { - return function (event) { - event.preventDefault(); - // @ts-ignore - return fn.call(this, event); - }; - } - function attr(node, attribute, value) { - if (value == null) - node.removeAttribute(attribute); - else if (node.getAttribute(attribute) !== value) - node.setAttribute(attribute, value); - } - function children(element) { - return Array.from(element.childNodes); - } - function set_input_value(input, value) { - input.value = value == null ? '' : value; - } - function set_style(node, key, value, important) { - if (value === null) { - node.style.removeProperty(key); - } - else { - node.style.setProperty(key, value, important ? 'important' : ''); - } - } - function select_option(select, value) { - for (let i = 0; i < select.options.length; i += 1) { - const option = select.options[i]; - if (option.__value === value) { - option.selected = true; - return; - } - } - select.selectedIndex = -1; // no option should be selected - } - function select_value(select) { - const selected_option = select.querySelector(':checked') || select.options[0]; - return selected_option && selected_option.__value; - } - function toggle_class(element, name, toggle) { - element.classList[toggle ? 'add' : 'remove'](name); - } - function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { - const e = document.createEvent('CustomEvent'); - e.initCustomEvent(type, bubbles, cancelable, detail); - return e; - } - class HtmlTag { - constructor(is_svg = false) { - this.is_svg = false; - this.is_svg = is_svg; - this.e = this.n = null; - } - c(html) { - this.h(html); - } - m(html, target, anchor = null) { - if (!this.e) { - if (this.is_svg) - this.e = svg_element(target.nodeName); - else - this.e = element(target.nodeName); - this.t = target; - this.c(html); - } - this.i(anchor); - } - h(html) { - this.e.innerHTML = html; - this.n = Array.from(this.e.childNodes); - } - i(anchor) { - for (let i = 0; i < this.n.length; i += 1) { - insert(this.t, this.n[i], anchor); - } - } - p(html) { - this.d(); - this.h(html); - this.i(this.a); - } - d() { - this.n.forEach(detach); - } - } - - // we need to store the information for multiple documents because a Svelte application could also contain iframes - // https://github.com/sveltejs/svelte/issues/3624 - const managed_styles = new Map(); - let active = 0; - // https://github.com/darkskyapp/string-hash/blob/master/index.js - function hash(str) { - let hash = 5381; - let i = str.length; - while (i--) - hash = ((hash << 5) - hash) ^ str.charCodeAt(i); - return hash >>> 0; - } - function create_style_information(doc, node) { - const info = { stylesheet: append_empty_stylesheet(node), rules: {} }; - managed_styles.set(doc, info); - return info; - } - function create_rule(node, a, b, duration, delay, ease, fn, uid = 0) { - const step = 16.666 / duration; - let keyframes = '{\n'; - for (let p = 0; p <= 1; p += step) { - const t = a + (b - a) * ease(p); - keyframes += p * 100 + `%{${fn(t, 1 - t)}}\n`; - } - const rule = keyframes + `100% {${fn(b, 1 - b)}}\n}`; - const name = `__svelte_${hash(rule)}_${uid}`; - const doc = get_root_for_style(node); - const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node); - if (!rules[name]) { - rules[name] = true; - stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); - } - const animation = node.style.animation || ''; - node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`; - active += 1; - return name; - } - function delete_rule(node, name) { - const previous = (node.style.animation || '').split(', '); - const next = previous.filter(name - ? anim => anim.indexOf(name) < 0 // remove specific animation - : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations - ); - const deleted = previous.length - next.length; - if (deleted) { - node.style.animation = next.join(', '); - active -= deleted; - if (!active) - clear_rules(); - } - } - function clear_rules() { - raf(() => { - if (active) - return; - managed_styles.forEach(info => { - const { ownerNode } = info.stylesheet; - // there is no ownerNode if it runs on jsdom. - if (ownerNode) - detach(ownerNode); - }); - managed_styles.clear(); - }); - } - - let current_component; - function set_current_component(component) { - current_component = component; - } - function get_current_component() { - if (!current_component) - throw new Error('Function called outside component initialization'); - return current_component; - } - /** - * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. - * It must be called during the component's initialisation (but doesn't need to live *inside* the component; - * it can be called from an external module). - * - * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). - * - * https://svelte.dev/docs#run-time-svelte-onmount - */ - function onMount(fn) { - get_current_component().$$.on_mount.push(fn); - } - /** - * Schedules a callback to run immediately after the component has been updated. - * - * The first time the callback runs will be after the initial `onMount` - */ - function afterUpdate(fn) { - get_current_component().$$.after_update.push(fn); - } - /** - * Schedules a callback to run immediately before the component is unmounted. - * - * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the - * only one that runs inside a server-side component. - * - * https://svelte.dev/docs#run-time-svelte-ondestroy - */ - function onDestroy(fn) { - get_current_component().$$.on_destroy.push(fn); - } - /** - * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname). - * Event dispatchers are functions that can take two arguments: `name` and `detail`. - * - * Component events created with `createEventDispatcher` create a - * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent). - * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture). - * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail) - * property and can contain any type of data. - * - * https://svelte.dev/docs#run-time-svelte-createeventdispatcher - */ - function createEventDispatcher() { - const component = get_current_component(); - return (type, detail, { cancelable = false } = {}) => { - const callbacks = component.$$.callbacks[type]; - if (callbacks) { - // TODO are there situations where events could be dispatched - // in a server (non-DOM) environment? - const event = custom_event(type, detail, { cancelable }); - callbacks.slice().forEach(fn => { - fn.call(component, event); - }); - return !event.defaultPrevented; - } - return true; - }; - } - // TODO figure out if we still want to support - // shorthand events, or if we want to implement - // a real bubbling mechanism - function bubble(component, event) { - const callbacks = component.$$.callbacks[event.type]; - if (callbacks) { - // @ts-ignore - callbacks.slice().forEach(fn => fn.call(this, event)); - } - } - - const dirty_components = []; - const binding_callbacks = []; - const render_callbacks = []; - const flush_callbacks = []; - const resolved_promise = Promise.resolve(); - let update_scheduled = false; - function schedule_update() { - if (!update_scheduled) { - update_scheduled = true; - resolved_promise.then(flush); - } - } - function tick() { - schedule_update(); - return resolved_promise; - } - function add_render_callback(fn) { - render_callbacks.push(fn); - } - function add_flush_callback(fn) { - flush_callbacks.push(fn); - } - // flush() calls callbacks in this order: - // 1. All beforeUpdate callbacks, in order: parents before children - // 2. All bind:this callbacks, in reverse order: children before parents. - // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT - // for afterUpdates called during the initial onMount, which are called in - // reverse order: children before parents. - // Since callbacks might update component values, which could trigger another - // call to flush(), the following steps guard against this: - // 1. During beforeUpdate, any updated components will be added to the - // dirty_components array and will cause a reentrant call to flush(). Because - // the flush index is kept outside the function, the reentrant call will pick - // up where the earlier call left off and go through all dirty components. The - // current_component value is saved and restored so that the reentrant call will - // not interfere with the "parent" flush() call. - // 2. bind:this callbacks cannot trigger new flush() calls. - // 3. During afterUpdate, any updated components will NOT have their afterUpdate - // callback called a second time; the seen_callbacks set, outside the flush() - // function, guarantees this behavior. - const seen_callbacks = new Set(); - let flushidx = 0; // Do *not* move this inside the flush() function - function flush() { - const saved_component = current_component; - do { - // first, call beforeUpdate functions - // and update components - while (flushidx < dirty_components.length) { - const component = dirty_components[flushidx]; - flushidx++; - set_current_component(component); - update(component.$$); - } - set_current_component(null); - dirty_components.length = 0; - flushidx = 0; - while (binding_callbacks.length) - binding_callbacks.pop()(); - // then, once components are updated, call - // afterUpdate functions. This may cause - // subsequent updates... - for (let i = 0; i < render_callbacks.length; i += 1) { - const callback = render_callbacks[i]; - if (!seen_callbacks.has(callback)) { - // ...so guard against infinite loops - seen_callbacks.add(callback); - callback(); - } - } - render_callbacks.length = 0; - } while (dirty_components.length); - while (flush_callbacks.length) { - flush_callbacks.pop()(); - } - update_scheduled = false; - seen_callbacks.clear(); - set_current_component(saved_component); - } - function update($$) { - if ($$.fragment !== null) { - $$.update(); - run_all($$.before_update); - const dirty = $$.dirty; - $$.dirty = [-1]; - $$.fragment && $$.fragment.p($$.ctx, dirty); - $$.after_update.forEach(add_render_callback); - } - } - - let promise; - function wait() { - if (!promise) { - promise = Promise.resolve(); - promise.then(() => { - promise = null; - }); - } - return promise; - } - function dispatch(node, direction, kind) { - node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`)); - } - const outroing = new Set(); - let outros; - function group_outros() { - outros = { - r: 0, - c: [], - p: outros // parent group - }; - } - function check_outros() { - if (!outros.r) { - run_all(outros.c); - } - outros = outros.p; - } - function transition_in(block, local) { - if (block && block.i) { - outroing.delete(block); - block.i(local); - } - } - function transition_out(block, local, detach, callback) { - if (block && block.o) { - if (outroing.has(block)) - return; - outroing.add(block); - outros.c.push(() => { - outroing.delete(block); - if (callback) { - if (detach) - block.d(1); - callback(); - } - }); - block.o(local); - } - else if (callback) { - callback(); - } - } - const null_transition = { duration: 0 }; - function create_in_transition(node, fn, params) { - let config = fn(node, params); - let running = false; - let animation_name; - let task; - let uid = 0; - function cleanup() { - if (animation_name) - delete_rule(node, animation_name); - } - function go() { - const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition; - if (css) - animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++); - tick(0, 1); - const start_time = now() + delay; - const end_time = start_time + duration; - if (task) - task.abort(); - running = true; - add_render_callback(() => dispatch(node, true, 'start')); - task = loop(now => { - if (running) { - if (now >= end_time) { - tick(1, 0); - dispatch(node, true, 'end'); - cleanup(); - return running = false; - } - if (now >= start_time) { - const t = easing((now - start_time) / duration); - tick(t, 1 - t); - } - } - return running; - }); - } - let started = false; - return { - start() { - if (started) - return; - started = true; - delete_rule(node); - if (is_function(config)) { - config = config(); - wait().then(go); - } - else { - go(); - } - }, - invalidate() { - started = false; - }, - end() { - if (running) { - cleanup(); - running = false; - } - } - }; - } - - function handle_promise(promise, info) { - const token = info.token = {}; - function update(type, index, key, value) { - if (info.token !== token) - return; - info.resolved = value; - let child_ctx = info.ctx; - if (key !== undefined) { - child_ctx = child_ctx.slice(); - child_ctx[key] = value; - } - const block = type && (info.current = type)(child_ctx); - let needs_flush = false; - if (info.block) { - if (info.blocks) { - info.blocks.forEach((block, i) => { - if (i !== index && block) { - group_outros(); - transition_out(block, 1, 1, () => { - if (info.blocks[i] === block) { - info.blocks[i] = null; - } - }); - check_outros(); - } - }); - } - else { - info.block.d(1); - } - block.c(); - transition_in(block, 1); - block.m(info.mount(), info.anchor); - needs_flush = true; - } - info.block = block; - if (info.blocks) - info.blocks[index] = block; - if (needs_flush) { - flush(); - } - } - if (is_promise(promise)) { - const current_component = get_current_component(); - promise.then(value => { - set_current_component(current_component); - update(info.then, 1, info.value, value); - set_current_component(null); - }, error => { - set_current_component(current_component); - update(info.catch, 2, info.error, error); - set_current_component(null); - if (!info.hasCatch) { - throw error; - } - }); - // if we previously had a then/catch block, destroy it - if (info.current !== info.pending) { - update(info.pending, 0); - return true; - } - } - else { - if (info.current !== info.then) { - update(info.then, 1, info.value, promise); - return true; - } - info.resolved = promise; - } - } - function update_await_block_branch(info, ctx, dirty) { - const child_ctx = ctx.slice(); - const { resolved } = info; - if (info.current === info.then) { - child_ctx[info.value] = resolved; - } - if (info.current === info.catch) { - child_ctx[info.error] = resolved; - } - info.block.p(child_ctx, dirty); - } - - const globals = (typeof window !== 'undefined' - ? window - : typeof globalThis !== 'undefined' - ? globalThis - : global); - - function get_spread_update(levels, updates) { - const update = {}; - const to_null_out = {}; - const accounted_for = { $$scope: 1 }; - let i = levels.length; - while (i--) { - const o = levels[i]; - const n = updates[i]; - if (n) { - for (const key in o) { - if (!(key in n)) - to_null_out[key] = 1; - } - for (const key in n) { - if (!accounted_for[key]) { - update[key] = n[key]; - accounted_for[key] = 1; - } - } - levels[i] = n; - } - else { - for (const key in o) { - accounted_for[key] = 1; - } - } - } - for (const key in to_null_out) { - if (!(key in update)) - update[key] = undefined; - } - return update; - } - function get_spread_object(spread_props) { - return typeof spread_props === 'object' && spread_props !== null ? spread_props : {}; - } - - function bind(component, name, callback) { - const index = component.$$.props[name]; - if (index !== undefined) { - component.$$.bound[index] = callback; - callback(component.$$.ctx[index]); - } - } - function create_component(block) { - block && block.c(); - } - function mount_component(component, target, anchor, customElement) { - const { fragment, after_update } = component.$$; - fragment && fragment.m(target, anchor); - if (!customElement) { - // onMount happens before the initial afterUpdate - add_render_callback(() => { - const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); - // if the component was destroyed immediately - // it will update the `$$.on_destroy` reference to `null`. - // the destructured on_destroy may still reference to the old array - if (component.$$.on_destroy) { - component.$$.on_destroy.push(...new_on_destroy); - } - else { - // Edge case - component was destroyed immediately, - // most likely as a result of a binding initialising - run_all(new_on_destroy); - } - component.$$.on_mount = []; - }); - } - after_update.forEach(add_render_callback); - } - function destroy_component(component, detaching) { - const $$ = component.$$; - if ($$.fragment !== null) { - run_all($$.on_destroy); - $$.fragment && $$.fragment.d(detaching); - // TODO null out other refs, including component.$$ (but need to - // preserve final state?) - $$.on_destroy = $$.fragment = null; - $$.ctx = []; - } - } - function make_dirty(component, i) { - if (component.$$.dirty[0] === -1) { - dirty_components.push(component); - schedule_update(); - component.$$.dirty.fill(0); - } - component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31)); - } - function init$2(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) { - const parent_component = current_component; - set_current_component(component); - const $$ = component.$$ = { - fragment: null, - ctx: [], - // state - props, - update: noop, - not_equal, - bound: blank_object(), - // lifecycle - on_mount: [], - on_destroy: [], - on_disconnect: [], - before_update: [], - after_update: [], - context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), - // everything else - callbacks: blank_object(), - dirty, - skip_bound: false, - root: options.target || parent_component.$$.root - }; - append_styles && append_styles($$.root); - let ready = false; - $$.ctx = instance - ? instance(component, options.props || {}, (i, ret, ...rest) => { - const value = rest.length ? rest[0] : ret; - if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { - if (!$$.skip_bound && $$.bound[i]) - $$.bound[i](value); - if (ready) - make_dirty(component, i); - } - return ret; - }) - : []; - $$.update(); - ready = true; - run_all($$.before_update); - // `false` as a special case of no DOM component - $$.fragment = create_fragment ? create_fragment($$.ctx) : false; - if (options.target) { - if (options.hydrate) { - const nodes = children(options.target); - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - $$.fragment && $$.fragment.l(nodes); - nodes.forEach(detach); - } - else { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - $$.fragment && $$.fragment.c(); - } - if (options.intro) - transition_in(component.$$.fragment); - mount_component(component, options.target, options.anchor, options.customElement); - flush(); - } - set_current_component(parent_component); - } - /** - * Base class for Svelte components. Used when dev=false. - */ - class SvelteComponent { - $destroy() { - destroy_component(this, 1); - this.$destroy = noop; - } - $on(type, callback) { - if (!is_function(callback)) { - return noop; - } - const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); - callbacks.push(callback); - return () => { - const index = callbacks.indexOf(callback); - if (index !== -1) - callbacks.splice(index, 1); - }; - } - $set($$props) { - if (this.$$set && !is_empty($$props)) { - this.$$.skip_bound = true; - this.$$set($$props); - this.$$.skip_bound = false; - } - } - } - - function dispatch_dev(type, detail) { - document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true })); - } - function append_dev(target, node) { - dispatch_dev('SvelteDOMInsert', { target, node }); - append(target, node); - } - function insert_dev(target, node, anchor) { - dispatch_dev('SvelteDOMInsert', { target, node, anchor }); - insert(target, node, anchor); - } - function detach_dev(node) { - dispatch_dev('SvelteDOMRemove', { node }); - detach(node); - } - function listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) { - const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : []; - if (has_prevent_default) - modifiers.push('preventDefault'); - if (has_stop_propagation) - modifiers.push('stopPropagation'); - dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers }); - const dispose = listen(node, event, handler, options); - return () => { - dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers }); - dispose(); - }; - } - function attr_dev(node, attribute, value) { - attr(node, attribute, value); - if (value == null) - dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute }); - else - dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value }); - } - function prop_dev(node, property, value) { - node[property] = value; - dispatch_dev('SvelteDOMSetProperty', { node, property, value }); - } - function set_data_dev(text, data) { - data = '' + data; - if (text.wholeText === data) - return; - dispatch_dev('SvelteDOMSetData', { node: text, data }); - text.data = data; - } - function validate_each_argument(arg) { - if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { - let msg = '{#each} only iterates over array-like objects.'; - if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { - msg += ' You can use a spread to convert this iterable into an array.'; - } - throw new Error(msg); - } - } - function validate_slots(name, slot, keys) { - for (const slot_key of Object.keys(slot)) { - if (!~keys.indexOf(slot_key)) { - console.warn(`<${name}> received an unexpected slot "${slot_key}".`); - } - } - } - function construct_svelte_component_dev(component, props) { - const error_message = 'this={...} of should specify a Svelte component.'; - try { - const instance = new component(props); - if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) { - throw new Error(error_message); - } - return instance; - } - catch (err) { - const { message } = err; - if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) { - throw new Error(error_message); - } - else { - throw err; - } - } - } - /** - * Base class for Svelte components with some minor dev-enhancements. Used when dev=true. - */ - class SvelteComponentDev extends SvelteComponent { - constructor(options) { - if (!options || (!options.target && !options.$$inline)) { - throw new Error("'target' is a required option"); - } - super(); - } - $destroy() { - super.$destroy(); - this.$destroy = () => { - console.warn('Component was already destroyed'); // eslint-disable-line no-console - }; - } - $capture_state() { } - $inject_state() { } - } - - /** - * @typedef {Object} WrappedComponent Object returned by the `wrap` method - * @property {SvelteComponent} component - Component to load (this is always asynchronous) - * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate - * @property {Object} [props] - Optional dictionary of static props - * @property {Object} [userData] - Optional user data dictionary - * @property {bool} _sveltesparouter - Internal flag; always set to true - */ - - /** - * @callback AsyncSvelteComponent - * @returns {Promise} Returns a Promise that resolves with a Svelte component - */ - - /** - * @callback RoutePrecondition - * @param {RouteDetail} detail - Route detail object - * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks) - */ - - /** - * @typedef {Object} WrapOptions Options object for the call to `wrap` - * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`) - * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`) - * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component - * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`) - * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed` - * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop. - * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order - */ - - /** - * Wraps a component to enable multiple capabilities: - * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting. - * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`) - * 3. Adding static props that are passed to the component - * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`) - * - * @param {WrapOptions} args - Arguments object - * @returns {WrappedComponent} Wrapped component - */ - function wrap$1(args) { - if (!args) { - throw Error('Parameter args is required') - } - - // We need to have one and only one of component and asyncComponent - // This does a "XNOR" - if (!args.component == !args.asyncComponent) { - throw Error('One and only one of component and asyncComponent is required') - } - - // If the component is not async, wrap it into a function returning a Promise - if (args.component) { - args.asyncComponent = () => Promise.resolve(args.component); - } - - // Parameter asyncComponent and each item of conditions must be functions - if (typeof args.asyncComponent != 'function') { - throw Error('Parameter asyncComponent must be a function') - } - if (args.conditions) { - // Ensure it's an array - if (!Array.isArray(args.conditions)) { - args.conditions = [args.conditions]; - } - for (let i = 0; i < args.conditions.length; i++) { - if (!args.conditions[i] || typeof args.conditions[i] != 'function') { - throw Error('Invalid parameter conditions[' + i + ']') - } - } - } - - // Check if we have a placeholder component - if (args.loadingComponent) { - args.asyncComponent.loading = args.loadingComponent; - args.asyncComponent.loadingParams = args.loadingParams || undefined; - } - - // Returns an object that contains all the functions to execute too - // The _sveltesparouter flag is to confirm the object was created by this router - const obj = { - component: args.asyncComponent, - userData: args.userData, - conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined, - props: (args.props && Object.keys(args.props).length) ? args.props : {}, - _sveltesparouter: true - }; - - return obj - } - - const subscriber_queue = []; - /** - * Creates a `Readable` store that allows reading by subscription. - * @param value initial value - * @param {StartStopNotifier}start start and stop notifications for subscriptions - */ - function readable(value, start) { - return { - subscribe: writable(value, start).subscribe - }; - } - /** - * Create a `Writable` store that allows both updating and reading by subscription. - * @param {*=}value initial value - * @param {StartStopNotifier=}start start and stop notifications for subscriptions - */ - function writable(value, start = noop) { - let stop; - const subscribers = new Set(); - function set(new_value) { - if (safe_not_equal(value, new_value)) { - value = new_value; - if (stop) { // store is ready - const run_queue = !subscriber_queue.length; - for (const subscriber of subscribers) { - subscriber[1](); - subscriber_queue.push(subscriber, value); - } - if (run_queue) { - for (let i = 0; i < subscriber_queue.length; i += 2) { - subscriber_queue[i][0](subscriber_queue[i + 1]); - } - subscriber_queue.length = 0; - } - } - } - } - function update(fn) { - set(fn(value)); - } - function subscribe(run, invalidate = noop) { - const subscriber = [run, invalidate]; - subscribers.add(subscriber); - if (subscribers.size === 1) { - stop = start(set) || noop; - } - run(value); - return () => { - subscribers.delete(subscriber); - if (subscribers.size === 0) { - stop(); - stop = null; - } - }; - } - return { set, update, subscribe }; - } - function derived(stores, fn, initial_value) { - const single = !Array.isArray(stores); - const stores_array = single - ? [stores] - : stores; - const auto = fn.length < 2; - return readable(initial_value, (set) => { - let inited = false; - const values = []; - let pending = 0; - let cleanup = noop; - const sync = () => { - if (pending) { - return; - } - cleanup(); - const result = fn(single ? values[0] : values, set); - if (auto) { - set(result); - } - else { - cleanup = is_function(result) ? result : noop; - } - }; - const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => { - values[i] = value; - pending &= ~(1 << i); - if (inited) { - sync(); - } - }, () => { - pending |= (1 << i); - })); - inited = true; - sync(); - return function stop() { - run_all(unsubscribers); - cleanup(); - }; - }); - } - - function parse$1(str, loose) { - if (str instanceof RegExp) return { keys:false, pattern:str }; - var c, o, tmp, ext, keys=[], pattern='', arr = str.split('/'); - arr[0] || arr.shift(); - - while (tmp = arr.shift()) { - c = tmp[0]; - if (c === '*') { - keys.push('wild'); - pattern += '/(.*)'; - } else if (c === ':') { - o = tmp.indexOf('?', 1); - ext = tmp.indexOf('.', 1); - keys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) ); - pattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)'; - if (!!~ext) pattern += (!!~o ? '?' : '') + '\\' + tmp.substring(ext); - } else { - pattern += '/' + tmp; - } - } - - return { - keys: keys, - pattern: new RegExp('^' + pattern + (loose ? '(?=$|\/)' : '\/?$'), 'i') - }; - } - - /* node_modules/svelte-spa-router/Router.svelte generated by Svelte v3.53.1 */ - - const { Error: Error_1, Object: Object_1$1, console: console_1$e } = globals; - - // (267:0) {:else} - function create_else_block$7(ctx) { - let switch_instance; - let switch_instance_anchor; - let current; - const switch_instance_spread_levels = [/*props*/ ctx[2]]; - var switch_value = /*component*/ ctx[0]; - - function switch_props(ctx) { - let switch_instance_props = {}; - - for (let i = 0; i < switch_instance_spread_levels.length; i += 1) { - switch_instance_props = assign(switch_instance_props, switch_instance_spread_levels[i]); - } - - return { - props: switch_instance_props, - $$inline: true - }; - } - - if (switch_value) { - switch_instance = construct_svelte_component_dev(switch_value, switch_props()); - switch_instance.$on("routeEvent", /*routeEvent_handler_1*/ ctx[7]); - } - - const block = { - c: function create() { - if (switch_instance) create_component(switch_instance.$$.fragment); - switch_instance_anchor = empty$1(); - }, - m: function mount(target, anchor) { - if (switch_instance) mount_component(switch_instance, target, anchor); - insert_dev(target, switch_instance_anchor, anchor); - current = true; - }, - p: function update(ctx, dirty) { - const switch_instance_changes = (dirty & /*props*/ 4) - ? get_spread_update(switch_instance_spread_levels, [get_spread_object(/*props*/ ctx[2])]) - : {}; - - if (switch_value !== (switch_value = /*component*/ ctx[0])) { - if (switch_instance) { - group_outros(); - const old_component = switch_instance; - - transition_out(old_component.$$.fragment, 1, 0, () => { - destroy_component(old_component, 1); - }); - - check_outros(); - } - - if (switch_value) { - switch_instance = construct_svelte_component_dev(switch_value, switch_props()); - switch_instance.$on("routeEvent", /*routeEvent_handler_1*/ ctx[7]); - create_component(switch_instance.$$.fragment); - transition_in(switch_instance.$$.fragment, 1); - mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor); - } else { - switch_instance = null; - } - } else if (switch_value) { - switch_instance.$set(switch_instance_changes); - } - }, - i: function intro(local) { - if (current) return; - if (switch_instance) transition_in(switch_instance.$$.fragment, local); - current = true; - }, - o: function outro(local) { - if (switch_instance) transition_out(switch_instance.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(switch_instance_anchor); - if (switch_instance) destroy_component(switch_instance, detaching); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_else_block$7.name, - type: "else", - source: "(267:0) {:else}", - ctx - }); - - return block; - } - - // (260:0) {#if componentParams} - function create_if_block$d(ctx) { - let switch_instance; - let switch_instance_anchor; - let current; - const switch_instance_spread_levels = [{ params: /*componentParams*/ ctx[1] }, /*props*/ ctx[2]]; - var switch_value = /*component*/ ctx[0]; - - function switch_props(ctx) { - let switch_instance_props = {}; - - for (let i = 0; i < switch_instance_spread_levels.length; i += 1) { - switch_instance_props = assign(switch_instance_props, switch_instance_spread_levels[i]); - } - - return { - props: switch_instance_props, - $$inline: true - }; - } - - if (switch_value) { - switch_instance = construct_svelte_component_dev(switch_value, switch_props()); - switch_instance.$on("routeEvent", /*routeEvent_handler*/ ctx[6]); - } - - const block = { - c: function create() { - if (switch_instance) create_component(switch_instance.$$.fragment); - switch_instance_anchor = empty$1(); - }, - m: function mount(target, anchor) { - if (switch_instance) mount_component(switch_instance, target, anchor); - insert_dev(target, switch_instance_anchor, anchor); - current = true; - }, - p: function update(ctx, dirty) { - const switch_instance_changes = (dirty & /*componentParams, props*/ 6) - ? get_spread_update(switch_instance_spread_levels, [ - dirty & /*componentParams*/ 2 && { params: /*componentParams*/ ctx[1] }, - dirty & /*props*/ 4 && get_spread_object(/*props*/ ctx[2]) - ]) - : {}; - - if (switch_value !== (switch_value = /*component*/ ctx[0])) { - if (switch_instance) { - group_outros(); - const old_component = switch_instance; - - transition_out(old_component.$$.fragment, 1, 0, () => { - destroy_component(old_component, 1); - }); - - check_outros(); - } - - if (switch_value) { - switch_instance = construct_svelte_component_dev(switch_value, switch_props()); - switch_instance.$on("routeEvent", /*routeEvent_handler*/ ctx[6]); - create_component(switch_instance.$$.fragment); - transition_in(switch_instance.$$.fragment, 1); - mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor); - } else { - switch_instance = null; - } - } else if (switch_value) { - switch_instance.$set(switch_instance_changes); - } - }, - i: function intro(local) { - if (current) return; - if (switch_instance) transition_in(switch_instance.$$.fragment, local); - current = true; - }, - o: function outro(local) { - if (switch_instance) transition_out(switch_instance.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(switch_instance_anchor); - if (switch_instance) destroy_component(switch_instance, detaching); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_if_block$d.name, - type: "if", - source: "(260:0) {#if componentParams}", - ctx - }); - - return block; - } - - function create_fragment$B(ctx) { - let current_block_type_index; - let if_block; - let if_block_anchor; - let current; - const if_block_creators = [create_if_block$d, create_else_block$7]; - const if_blocks = []; - - function select_block_type(ctx, dirty) { - if (/*componentParams*/ ctx[1]) return 0; - return 1; - } - - current_block_type_index = select_block_type(ctx); - if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); - - const block = { - c: function create() { - if_block.c(); - if_block_anchor = empty$1(); - }, - l: function claim(nodes) { - throw new Error_1("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - if_blocks[current_block_type_index].m(target, anchor); - insert_dev(target, if_block_anchor, anchor); - current = true; - }, - p: function update(ctx, [dirty]) { - let previous_block_index = current_block_type_index; - current_block_type_index = select_block_type(ctx); - - if (current_block_type_index === previous_block_index) { - if_blocks[current_block_type_index].p(ctx, dirty); - } else { - group_outros(); - - transition_out(if_blocks[previous_block_index], 1, 1, () => { - if_blocks[previous_block_index] = null; - }); - - check_outros(); - if_block = if_blocks[current_block_type_index]; - - if (!if_block) { - if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); - if_block.c(); - } else { - if_block.p(ctx, dirty); - } - - transition_in(if_block, 1); - if_block.m(if_block_anchor.parentNode, if_block_anchor); - } - }, - i: function intro(local) { - if (current) return; - transition_in(if_block); - current = true; - }, - o: function outro(local) { - transition_out(if_block); - current = false; - }, - d: function destroy(detaching) { - if_blocks[current_block_type_index].d(detaching); - if (detaching) detach_dev(if_block_anchor); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$B.name, - type: "component", - source: "", - ctx - }); - - return block; - } - - function wrap(component, userData, ...conditions) { - // Use the new wrap method and show a deprecation warning - // eslint-disable-next-line no-console - console.warn('Method `wrap` from `svelte-spa-router` is deprecated and will be removed in a future version. Please use `svelte-spa-router/wrap` instead. See http://bit.ly/svelte-spa-router-upgrading'); - - return wrap$1({ component, userData, conditions }); - } - - /** - * @typedef {Object} Location - * @property {string} location - Location (page/view), for example `/book` - * @property {string} [querystring] - Querystring from the hash, as a string not parsed - */ - /** - * Returns the current location from the hash. - * - * @returns {Location} Location object - * @private - */ - function getLocation() { - const hashPosition = window.location.href.indexOf('#/'); - - let location = hashPosition > -1 - ? window.location.href.substr(hashPosition + 1) - : '/'; - - // Check if there's a querystring - const qsPosition = location.indexOf('?'); - - let querystring = ''; - - if (qsPosition > -1) { - querystring = location.substr(qsPosition + 1); - location = location.substr(0, qsPosition); - } - - return { location, querystring }; - } - - const loc = readable(null, // eslint-disable-next-line prefer-arrow-callback - function start(set) { - set(getLocation()); - - const update = () => { - set(getLocation()); - }; - - window.addEventListener('hashchange', update, false); - - return function stop() { - window.removeEventListener('hashchange', update, false); - }; - }); - - const location$2 = derived(loc, $loc => $loc.location); - const querystring = derived(loc, $loc => $loc.querystring); - const params = writable(undefined); - - async function push(location) { - if (!location || location.length < 1 || location.charAt(0) != '/' && location.indexOf('#/') !== 0) { - throw Error('Invalid parameter location'); - } - - // Execute this code when the current call stack is complete - await tick(); - - // Note: this will include scroll state in history even when restoreScrollState is false - history.replaceState( - { - ...history.state, - __svelte_spa_router_scrollX: window.scrollX, - __svelte_spa_router_scrollY: window.scrollY - }, - undefined - ); - - window.location.hash = (location.charAt(0) == '#' ? '' : '#') + location; - } - - async function pop() { - // Execute this code when the current call stack is complete - await tick(); - - window.history.back(); - } - - async function replace(location) { - if (!location || location.length < 1 || location.charAt(0) != '/' && location.indexOf('#/') !== 0) { - throw Error('Invalid parameter location'); - } - - // Execute this code when the current call stack is complete - await tick(); - - const dest = (location.charAt(0) == '#' ? '' : '#') + location; - - try { - const newState = { ...history.state }; - delete newState['__svelte_spa_router_scrollX']; - delete newState['__svelte_spa_router_scrollY']; - window.history.replaceState(newState, undefined, dest); - } catch(e) { - // eslint-disable-next-line no-console - console.warn('Caught exception while replacing the current page. If you\'re running this in the Svelte REPL, please note that the `replace` method might not work in this environment.'); - } - - // The method above doesn't trigger the hashchange event, so let's do that manually - window.dispatchEvent(new Event('hashchange')); - } - - function link(node, opts) { - opts = linkOpts(opts); - - // Only apply to tags - if (!node || !node.tagName || node.tagName.toLowerCase() != 'a') { - throw Error('Action "link" can only be used with tags'); - } - - updateLink(node, opts); - - return { - update(updated) { - updated = linkOpts(updated); - updateLink(node, updated); - } - }; - } - - function restoreScroll(state) { - // If this exists, then this is a back navigation: restore the scroll position - if (state) { - window.scrollTo(state.__svelte_spa_router_scrollX, state.__svelte_spa_router_scrollY); - } else { - // Otherwise this is a forward navigation: scroll to top - window.scrollTo(0, 0); - } - } - - // Internal function used by the link function - function updateLink(node, opts) { - let href = opts.href || node.getAttribute('href'); - - // Destination must start with '/' or '#/' - if (href && href.charAt(0) == '/') { - // Add # to the href attribute - href = '#' + href; - } else if (!href || href.length < 2 || href.slice(0, 2) != '#/') { - throw Error('Invalid value for "href" attribute: ' + href); - } - - node.setAttribute('href', href); - - node.addEventListener('click', event => { - // Prevent default anchor onclick behaviour - event.preventDefault(); - - if (!opts.disabled) { - scrollstateHistoryHandler(event.currentTarget.getAttribute('href')); - } - }); - } - - // Internal function that ensures the argument of the link action is always an object - function linkOpts(val) { - if (val && typeof val == 'string') { - return { href: val }; - } else { - return val || {}; - } - } - - /** - * The handler attached to an anchor tag responsible for updating the - * current history state with the current scroll state - * - * @param {string} href - Destination - */ - function scrollstateHistoryHandler(href) { - // Setting the url (3rd arg) to href will break clicking for reasons, so don't try to do that - history.replaceState( - { - ...history.state, - __svelte_spa_router_scrollX: window.scrollX, - __svelte_spa_router_scrollY: window.scrollY - }, - undefined - ); - - // This will force an update as desired, but this time our scroll state will be attached - window.location.hash = href; - } - - function instance$B($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots('Router', slots, []); - let { routes = {} } = $$props; - let { prefix = '' } = $$props; - let { restoreScrollState = false } = $$props; - - /** - * Container for a route: path, component - */ - class RouteItem { - /** - * Initializes the object and creates a regular expression from the path, using regexparam. - * - * @param {string} path - Path to the route (must start with '/' or '*') - * @param {SvelteComponent|WrappedComponent} component - Svelte component for the route, optionally wrapped - */ - constructor(path, component) { - if (!component || typeof component != 'function' && (typeof component != 'object' || component._sveltesparouter !== true)) { - throw Error('Invalid component object'); - } - - // Path must be a regular or expression, or a string starting with '/' or '*' - if (!path || typeof path == 'string' && (path.length < 1 || path.charAt(0) != '/' && path.charAt(0) != '*') || typeof path == 'object' && !(path instanceof RegExp)) { - throw Error('Invalid value for "path" argument - strings must start with / or *'); - } - - const { pattern, keys } = parse$1(path); - this.path = path; - - // Check if the component is wrapped and we have conditions - if (typeof component == 'object' && component._sveltesparouter === true) { - this.component = component.component; - this.conditions = component.conditions || []; - this.userData = component.userData; - this.props = component.props || {}; - } else { - // Convert the component to a function that returns a Promise, to normalize it - this.component = () => Promise.resolve(component); - - this.conditions = []; - this.props = {}; - } - - this._pattern = pattern; - this._keys = keys; - } - - /** - * Checks if `path` matches the current route. - * If there's a match, will return the list of parameters from the URL (if any). - * In case of no match, the method will return `null`. - * - * @param {string} path - Path to test - * @returns {null|Object.} List of paramters from the URL if there's a match, or `null` otherwise. - */ - match(path) { - // If there's a prefix, check if it matches the start of the path. - // If not, bail early, else remove it before we run the matching. - if (prefix) { - if (typeof prefix == 'string') { - if (path.startsWith(prefix)) { - path = path.substr(prefix.length) || '/'; - } else { - return null; - } - } else if (prefix instanceof RegExp) { - const match = path.match(prefix); - - if (match && match[0]) { - path = path.substr(match[0].length) || '/'; - } else { - return null; - } - } - } - - // Check if the pattern matches - const matches = this._pattern.exec(path); - - if (matches === null) { - return null; - } - - // If the input was a regular expression, this._keys would be false, so return matches as is - if (this._keys === false) { - return matches; - } - - const out = {}; - let i = 0; - - while (i < this._keys.length) { - // In the match parameters, URL-decode all values - try { - out[this._keys[i]] = decodeURIComponent(matches[i + 1] || '') || null; - } catch(e) { - out[this._keys[i]] = null; - } - - i++; - } - - return out; - } - - /** - * Dictionary with route details passed to the pre-conditions functions, as well as the `routeLoading`, `routeLoaded` and `conditionsFailed` events - * @typedef {Object} RouteDetail - * @property {string|RegExp} route - Route matched as defined in the route definition (could be a string or a reguar expression object) - * @property {string} location - Location path - * @property {string} querystring - Querystring from the hash - * @property {object} [userData] - Custom data passed by the user - * @property {SvelteComponent} [component] - Svelte component (only in `routeLoaded` events) - * @property {string} [name] - Name of the Svelte component (only in `routeLoaded` events) - */ - /** - * Executes all conditions (if any) to control whether the route can be shown. Conditions are executed in the order they are defined, and if a condition fails, the following ones aren't executed. - * - * @param {RouteDetail} detail - Route detail - * @returns {boolean} Returns true if all the conditions succeeded - */ - async checkConditions(detail) { - for (let i = 0; i < this.conditions.length; i++) { - if (!await this.conditions[i](detail)) { - return false; - } - } - - return true; - } - } - - // Set up all routes - const routesList = []; - - if (routes instanceof Map) { - // If it's a map, iterate on it right away - routes.forEach((route, path) => { - routesList.push(new RouteItem(path, route)); - }); - } else { - // We have an object, so iterate on its own properties - Object.keys(routes).forEach(path => { - routesList.push(new RouteItem(path, routes[path])); - }); - } - - // Props for the component to render - let component = null; - - let componentParams = null; - let props = {}; - - // Event dispatcher from Svelte - const dispatch = createEventDispatcher(); - - // Just like dispatch, but executes on the next iteration of the event loop - async function dispatchNextTick(name, detail) { - // Execute this code when the current call stack is complete - await tick(); - - dispatch(name, detail); - } - - // If this is set, then that means we have popped into this var the state of our last scroll position - let previousScrollState = null; - - let popStateChanged = null; - - if (restoreScrollState) { - popStateChanged = event => { - // If this event was from our history.replaceState, event.state will contain - // our scroll history. Otherwise, event.state will be null (like on forward - // navigation) - if (event.state && (event.state.__svelte_spa_router_scrollY || event.state.__svelte_spa_router_scrollX)) { - previousScrollState = event.state; - } else { - previousScrollState = null; - } - }; - - // This is removed in the destroy() invocation below - window.addEventListener('popstate', popStateChanged); - - afterUpdate(() => { - restoreScroll(previousScrollState); - }); - } - - // Always have the latest value of loc - let lastLoc = null; - - // Current object of the component loaded - let componentObj = null; - - // Handle hash change events - // Listen to changes in the $loc store and update the page - // Do not use the $: syntax because it gets triggered by too many things - const unsubscribeLoc = loc.subscribe(async newLoc => { - lastLoc = newLoc; - - // Find a route matching the location - let i = 0; - - while (i < routesList.length) { - const match = routesList[i].match(newLoc.location); - - if (!match) { - i++; - continue; - } - - const detail = { - route: routesList[i].path, - location: newLoc.location, - querystring: newLoc.querystring, - userData: routesList[i].userData, - params: match && typeof match == 'object' && Object.keys(match).length - ? match - : null - }; - - // Check if the route can be loaded - if all conditions succeed - if (!await routesList[i].checkConditions(detail)) { - // Don't display anything - $$invalidate(0, component = null); - - componentObj = null; - - // Trigger an event to notify the user, then exit - dispatchNextTick('conditionsFailed', detail); - - return; - } - - // Trigger an event to alert that we're loading the route - // We need to clone the object on every event invocation so we don't risk the object to be modified in the next tick - dispatchNextTick('routeLoading', Object.assign({}, detail)); - - // If there's a component to show while we're loading the route, display it - const obj = routesList[i].component; - - // Do not replace the component if we're loading the same one as before, to avoid the route being unmounted and re-mounted - if (componentObj != obj) { - if (obj.loading) { - $$invalidate(0, component = obj.loading); - componentObj = obj; - $$invalidate(1, componentParams = obj.loadingParams); - $$invalidate(2, props = {}); - - // Trigger the routeLoaded event for the loading component - // Create a copy of detail so we don't modify the object for the dynamic route (and the dynamic route doesn't modify our object too) - dispatchNextTick('routeLoaded', Object.assign({}, detail, { - component, - name: component.name, - params: componentParams - })); - } else { - $$invalidate(0, component = null); - componentObj = null; - } - - // Invoke the Promise - const loaded = await obj(); - - // Now that we're here, after the promise resolved, check if we still want this component, as the user might have navigated to another page in the meanwhile - if (newLoc != lastLoc) { - // Don't update the component, just exit - return; - } - - // If there is a "default" property, which is used by async routes, then pick that - $$invalidate(0, component = loaded && loaded.default || loaded); - - componentObj = obj; - } - - // Set componentParams only if we have a match, to avoid a warning similar to ` was created with unknown prop 'params'` - // Of course, this assumes that developers always add a "params" prop when they are expecting parameters - if (match && typeof match == 'object' && Object.keys(match).length) { - $$invalidate(1, componentParams = match); - } else { - $$invalidate(1, componentParams = null); - } - - // Set static props, if any - $$invalidate(2, props = routesList[i].props); - - // Dispatch the routeLoaded event then exit - // We need to clone the object on every event invocation so we don't risk the object to be modified in the next tick - dispatchNextTick('routeLoaded', Object.assign({}, detail, { - component, - name: component.name, - params: componentParams - })).then(() => { - params.set(componentParams); - }); - - return; - } - - // If we're still here, there was no match, so show the empty component - $$invalidate(0, component = null); - - componentObj = null; - params.set(undefined); - }); - - onDestroy(() => { - unsubscribeLoc(); - popStateChanged && window.removeEventListener('popstate', popStateChanged); - }); - - const writable_props = ['routes', 'prefix', 'restoreScrollState']; - - Object_1$1.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$e.warn(` was created with unknown prop '${key}'`); - }); - - function routeEvent_handler(event) { - bubble.call(this, $$self, event); - } - - function routeEvent_handler_1(event) { - bubble.call(this, $$self, event); - } - - $$self.$$set = $$props => { - if ('routes' in $$props) $$invalidate(3, routes = $$props.routes); - if ('prefix' in $$props) $$invalidate(4, prefix = $$props.prefix); - if ('restoreScrollState' in $$props) $$invalidate(5, restoreScrollState = $$props.restoreScrollState); - }; - - $$self.$capture_state = () => ({ - readable, - writable, - derived, - tick, - _wrap: wrap$1, - wrap, - getLocation, - loc, - location: location$2, - querystring, - params, - push, - pop, - replace, - link, - restoreScroll, - updateLink, - linkOpts, - scrollstateHistoryHandler, - onDestroy, - createEventDispatcher, - afterUpdate, - parse: parse$1, - routes, - prefix, - restoreScrollState, - RouteItem, - routesList, - component, - componentParams, - props, - dispatch, - dispatchNextTick, - previousScrollState, - popStateChanged, - lastLoc, - componentObj, - unsubscribeLoc - }); - - $$self.$inject_state = $$props => { - if ('routes' in $$props) $$invalidate(3, routes = $$props.routes); - if ('prefix' in $$props) $$invalidate(4, prefix = $$props.prefix); - if ('restoreScrollState' in $$props) $$invalidate(5, restoreScrollState = $$props.restoreScrollState); - if ('component' in $$props) $$invalidate(0, component = $$props.component); - if ('componentParams' in $$props) $$invalidate(1, componentParams = $$props.componentParams); - if ('props' in $$props) $$invalidate(2, props = $$props.props); - if ('previousScrollState' in $$props) previousScrollState = $$props.previousScrollState; - if ('popStateChanged' in $$props) popStateChanged = $$props.popStateChanged; - if ('lastLoc' in $$props) lastLoc = $$props.lastLoc; - if ('componentObj' in $$props) componentObj = $$props.componentObj; - }; - - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - - $$self.$$.update = () => { - if ($$self.$$.dirty & /*restoreScrollState*/ 32) { - // Update history.scrollRestoration depending on restoreScrollState - history.scrollRestoration = restoreScrollState ? 'manual' : 'auto'; - } - }; - - return [ - component, - componentParams, - props, - routes, - prefix, - restoreScrollState, - routeEvent_handler, - routeEvent_handler_1 - ]; - } - - class Router extends SvelteComponentDev { - constructor(options) { - super(options); - - init$2(this, options, instance$B, create_fragment$B, safe_not_equal, { - routes: 3, - prefix: 4, - restoreScrollState: 5 - }); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Router", - options, - id: create_fragment$B.name - }); - } - - get routes() { - throw new Error_1(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set routes(value) { - throw new Error_1(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get prefix() { - throw new Error_1(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set prefix(value) { - throw new Error_1(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get restoreScrollState() { - throw new Error_1(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set restoreScrollState(value) { - throw new Error_1(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - /* src/pages/NotFound.svelte generated by Svelte v3.53.1 */ - const file$x = "src/pages/NotFound.svelte"; - - function create_fragment$A(ctx) { - let h1; - let t1; - let p0; - let t3; - let p1; - let t5; - let a; - let h2; - let mounted; - let dispose; - - const block = { - c: function create() { - h1 = element("h1"); - h1.textContent = "We are sorry!"; - t1 = space(); - p0 = element("p"); - p0.textContent = "This isn't a url that we use."; - t3 = space(); - p1 = element("p"); - p1.textContent = "Go home you're drunk."; - t5 = space(); - a = element("a"); - h2 = element("h2"); - h2.textContent = "Take me home →"; - add_location(h1, file$x, 4, 0, 64); - add_location(p0, file$x, 5, 0, 87); - add_location(p1, file$x, 6, 0, 124); - add_location(h2, file$x, 8, 4, 179); - attr_dev(a, "href", "/"); - add_location(a, file$x, 7, 0, 153); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, h1, anchor); - insert_dev(target, t1, anchor); - insert_dev(target, p0, anchor); - insert_dev(target, t3, anchor); - insert_dev(target, p1, anchor); - insert_dev(target, t5, anchor); - insert_dev(target, a, anchor); - append_dev(a, h2); - - if (!mounted) { - dispose = action_destroyer(link.call(null, a)); - mounted = true; - } - }, - p: noop, - i: noop, - o: noop, - d: function destroy(detaching) { - if (detaching) detach_dev(h1); - if (detaching) detach_dev(t1); - if (detaching) detach_dev(p0); - if (detaching) detach_dev(t3); - if (detaching) detach_dev(p1); - if (detaching) detach_dev(t5); - if (detaching) detach_dev(a); - mounted = false; - dispose(); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$A.name, - type: "component", - source: "", - ctx - }); - - return block; - } - - function instance$A($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots('NotFound', slots, []); - const writable_props = []; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); - }); - - $$self.$capture_state = () => ({ link }); - return []; - } - - class NotFound extends SvelteComponentDev { - constructor(options) { - super(options); - init$2(this, options, instance$A, create_fragment$A, safe_not_equal, {}); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "NotFound", - options, - id: create_fragment$A.name - }); - } - } - - // List of nodes to update - const nodes = []; - - // Current location - let location$1; - - // Function that updates all nodes marking the active ones - function checkActive(el) { - const matchesLocation = el.pattern.test(location$1); - toggleClasses(el, el.className, matchesLocation); - toggleClasses(el, el.inactiveClassName, !matchesLocation); - } - - function toggleClasses(el, className, shouldAdd) { - (className || '').split(' ').forEach((cls) => { - if (!cls) { - return - } - // Remove the class firsts - el.node.classList.remove(cls); - - // If the pattern doesn't match, then set the class - if (shouldAdd) { - el.node.classList.add(cls); - } - }); - } - - // Listen to changes in the location - loc.subscribe((value) => { - // Update the location - location$1 = value.location + (value.querystring ? '?' + value.querystring : ''); - - // Update all nodes - nodes.map(checkActive); - }); - - /* src/pieces/Header.svelte generated by Svelte v3.53.1 */ - - const { console: console_1$d } = globals; - - const file$w = "src/pieces/Header.svelte"; - - function create_fragment$z(ctx) { - let header; - let img; - let img_src_value; - let t0; - let h1; - let t2; - let nav; - let button0; - let t4; - let button1; - let t6; - let button2; - let t8; - let button3; - let t10; - let button4; - let t12; - let button5; - let mounted; - let dispose; - - const block = { - c: function create() { - header = element("header"); - img = element("img"); - t0 = space(); - h1 = element("h1"); - h1.textContent = "Potato Pong"; - t2 = space(); - nav = element("nav"); - button0 = element("button"); - button0.textContent = "Play"; - t4 = space(); - button1 = element("button"); - button1.textContent = "Spectate"; - t6 = space(); - button2 = element("button"); - button2.textContent = "Ranking"; - t8 = space(); - button3 = element("button"); - button3.textContent = "My Profile"; - t10 = space(); - button4 = element("button"); - button4.textContent = "Friends"; - t12 = space(); - button5 = element("button"); - button5.textContent = "Log Out"; - if (!src_url_equal(img.src, img_src_value = "/img/potato_logo.png")) attr_dev(img, "src", img_src_value); - attr_dev(img, "alt", "Potato Pong Logo"); - attr_dev(img, "class", "svelte-1idlks6"); - add_location(img, file$w, 18, 2, 590); - attr_dev(h1, "class", "svelte-1idlks6"); - add_location(h1, file$w, 19, 2, 677); - attr_dev(button0, "class", "svelte-1idlks6"); - toggle_class(button0, "selected", /*current*/ ctx[0] === '/game'); - add_location(button0, file$w, 21, 1, 707); - attr_dev(button1, "class", "svelte-1idlks6"); - toggle_class(button1, "selected", /*current*/ ctx[0] === '/spectator'); - add_location(button1, file$w, 22, 1, 802); - attr_dev(button2, "class", "svelte-1idlks6"); - toggle_class(button2, "selected", /*current*/ ctx[0] === '/ranking'); - add_location(button2, file$w, 23, 1, 911); - attr_dev(button3, "class", "svelte-1idlks6"); - toggle_class(button3, "selected", /*current*/ ctx[0] === '/profile'); - add_location(button3, file$w, 24, 2, 1016); - attr_dev(button4, "class", "svelte-1idlks6"); - toggle_class(button4, "selected", /*current*/ ctx[0] === '/profile/friends'); - add_location(button4, file$w, 26, 2, 1257); - attr_dev(button5, "class", "svelte-1idlks6"); - add_location(button5, file$w, 27, 2, 1378); - attr_dev(nav, "class", "svelte-1idlks6"); - add_location(nav, file$w, 20, 2, 700); - attr_dev(header, "class", "svelte-1idlks6"); - add_location(header, file$w, 17, 0, 579); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, header, anchor); - append_dev(header, img); - append_dev(header, t0); - append_dev(header, h1); - append_dev(header, t2); - append_dev(header, nav); - append_dev(nav, button0); - append_dev(nav, t4); - append_dev(nav, button1); - append_dev(nav, t6); - append_dev(nav, button2); - append_dev(nav, t8); - append_dev(nav, button3); - append_dev(nav, t10); - append_dev(nav, button4); - append_dev(nav, t12); - append_dev(nav, button5); - - if (!mounted) { - dispose = [ - listen_dev(img, "click", /*click_handler*/ ctx[3], false, false, false), - listen_dev(button0, "click", /*click_handler_1*/ ctx[4], false, false, false), - listen_dev(button1, "click", /*click_handler_2*/ ctx[5], false, false, false), - listen_dev(button2, "click", /*click_handler_3*/ ctx[6], false, false, false), - listen_dev(button3, "click", /*click_handler_4*/ ctx[7], false, false, false), - listen_dev(button4, "click", /*click_handler_5*/ ctx[8], false, false, false), - listen_dev(button5, "click", /*handleClickLogout*/ ctx[1], false, false, false) - ]; - - mounted = true; - } - }, - p: function update(ctx, [dirty]) { - if (dirty & /*current*/ 1) { - toggle_class(button0, "selected", /*current*/ ctx[0] === '/game'); - } - - if (dirty & /*current*/ 1) { - toggle_class(button1, "selected", /*current*/ ctx[0] === '/spectator'); - } - - if (dirty & /*current*/ 1) { - toggle_class(button2, "selected", /*current*/ ctx[0] === '/ranking'); - } - - if (dirty & /*current*/ 1) { - toggle_class(button3, "selected", /*current*/ ctx[0] === '/profile'); - } - - if (dirty & /*current*/ 1) { - toggle_class(button4, "selected", /*current*/ ctx[0] === '/profile/friends'); - } - }, - i: noop, - o: noop, - d: function destroy(detaching) { - if (detaching) detach_dev(header); - mounted = false; - run_all(dispose); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$z.name, - type: "component", - source: "", - ctx - }); - - return block; - } - - function instance$z($$self, $$props, $$invalidate) { - let current; - let $location; - validate_store(location$2, 'location'); - component_subscribe($$self, location$2, $$value => $$invalidate(2, $location = $$value)); - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots('Header', slots, []); - - let handleClickLogout = async () => { - await fetch(`http://${'transcendance'}:${'8080'}/api/v2/auth/logout`, { method: 'POST' }).then(() => push('/')); - console.log('clicked logout header'); - }; - - const writable_props = []; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$d.warn(`
was created with unknown prop '${key}'`); - }); - - const click_handler = () => push('/'); - const click_handler_1 = () => push('/game'); - const click_handler_2 = () => push('/spectator'); - const click_handler_3 = () => push('/ranking'); - const click_handler_4 = () => push('/profile'); - const click_handler_5 = () => push('/profile/friends'); - - $$self.$capture_state = () => ({ - push, - location: location$2, - handleClickLogout, - current, - $location - }); - - $$self.$inject_state = $$props => { - if ('handleClickLogout' in $$props) $$invalidate(1, handleClickLogout = $$props.handleClickLogout); - if ('current' in $$props) $$invalidate(0, current = $$props.current); - }; - - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - - $$self.$$.update = () => { - if ($$self.$$.dirty & /*$location*/ 4) { - // or i could leave them all and not display if they're active? - $$invalidate(0, current = $location); - } - }; - - return [ - current, - handleClickLogout, - $location, - click_handler, - click_handler_1, - click_handler_2, - click_handler_3, - click_handler_4, - click_handler_5 - ]; - } - - class Header extends SvelteComponentDev { - constructor(options) { - super(options); - init$2(this, options, instance$z, create_fragment$z, safe_not_equal, {}); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Header", - options, - id: create_fragment$z.name - }); - } - } - - /* src/pieces/GenerateUserDisplay.svelte generated by Svelte v3.53.1 */ - - const { console: console_1$c } = globals; - const file$v = "src/pieces/GenerateUserDisplay.svelte"; - - // (66:2) {#if user !== undefined} - function create_if_block$c(ctx) { - let main; - let img; - let img_src_value; - let t0; - let div0; - let t1_value = /*errors*/ ctx[3].avatar + ""; - let t1; - let t2; - let div1; - let t3_value = /*user*/ ctx[0].username + ""; - let t3; - let t4; - let div2; - let t5; - let span4; - let span0; - let svg0; - let path0; - let t6; - let span1; - let svg1; - let path1; - let t7; - let span2; - let svg2; - let path2; - let t8; - let span3; - let t9; - let t10; - let section; - let h4; - let t12; - let p0; - let t13; - let t14_value = /*user*/ ctx[0].stats.totalGame + ""; - let t14; - let t15; - let p1; - let t16; - let t17_value = /*user*/ ctx[0].stats.winGame + ""; - let t17; - let t18; - let p2; - let t19; - let t20_value = /*user*/ ctx[0].stats.loseGame + ""; - let t20; - let t21; - let p3; - let t22; - let t23_value = /*user*/ ctx[0].stats.drawGame + ""; - let t23; - - const block = { - c: function create() { - main = element("main"); - img = element("img"); - t0 = space(); - div0 = element("div"); - t1 = text(t1_value); - t2 = space(); - div1 = element("div"); - t3 = text(t3_value); - t4 = space(); - div2 = element("div"); - t5 = text("Rank:\n "); - span4 = element("span"); - span0 = element("span"); - svg0 = svg_element("svg"); - path0 = svg_element("path"); - t6 = space(); - span1 = element("span"); - svg1 = svg_element("svg"); - path1 = svg_element("path"); - t7 = space(); - span2 = element("span"); - svg2 = svg_element("svg"); - path2 = svg_element("path"); - t8 = space(); - span3 = element("span"); - t9 = text(/*rank*/ ctx[1]); - t10 = space(); - section = element("section"); - h4 = element("h4"); - h4.textContent = "Match Statistics"; - t12 = space(); - p0 = element("p"); - t13 = text("Total: "); - t14 = text(t14_value); - t15 = space(); - p1 = element("p"); - t16 = text("Victories: "); - t17 = text(t17_value); - t18 = space(); - p2 = element("p"); - t19 = text("Losses: "); - t20 = text(t20_value); - t21 = space(); - p3 = element("p"); - t22 = text("Draws: "); - t23 = text(t23_value); - attr_dev(img, "class", "avatar svelte-vn7dzx"); - if (!src_url_equal(img.src, img_src_value = /*avatar*/ ctx[2])) attr_dev(img, "src", img_src_value); - attr_dev(img, "alt", "default user icon"); - add_location(img, file$v, 69, 4, 2466); - attr_dev(div0, "class", "error svelte-vn7dzx"); - add_location(div0, file$v, 70, 4, 2530); - attr_dev(div1, "class", "username svelte-vn7dzx"); - add_location(div1, file$v, 71, 4, 2575); - attr_dev(path0, "d", "M512 255.1c0 11.34-7.406 20.86-18.44 23.64l-171.3 42.78l-42.78 171.1C276.7 504.6 267.2 512 255.9 512s-20.84-7.406-23.62-18.44l-42.66-171.2L18.47 279.6C7.406 276.8 0 267.3 0 255.1c0-11.34 7.406-20.83 18.44-23.61l171.2-42.78l42.78-171.1C235.2 7.406 244.7 0 256 0s20.84 7.406 23.62 18.44l42.78 171.2l171.2 42.78C504.6 235.2 512 244.6 512 255.1z"); - attr_dev(path0, "class", "svelte-vn7dzx"); - add_location(path0, file$v, 76, 10, 2781); - attr_dev(svg0, "viewBox", "0 0 512 512"); - attr_dev(svg0, "class", "svelte-vn7dzx"); - add_location(svg0, file$v, 75, 10, 2743); - attr_dev(span0, "class", "glitter-star svelte-vn7dzx"); - add_location(span0, file$v, 74, 8, 2684); - attr_dev(path1, "d", "M512 255.1c0 11.34-7.406 20.86-18.44 23.64l-171.3 42.78l-42.78 171.1C276.7 504.6 267.2 512 255.9 512s-20.84-7.406-23.62-18.44l-42.66-171.2L18.47 279.6C7.406 276.8 0 267.3 0 255.1c0-11.34 7.406-20.83 18.44-23.61l171.2-42.78l42.78-171.1C235.2 7.406 244.7 0 256 0s20.84 7.406 23.62 18.44l42.78 171.2l171.2 42.78C504.6 235.2 512 244.6 512 255.1z"); - attr_dev(path1, "class", "svelte-vn7dzx"); - add_location(path1, file$v, 81, 10, 3274); - attr_dev(svg1, "viewBox", "0 0 512 512"); - attr_dev(svg1, "class", "svelte-vn7dzx"); - add_location(svg1, file$v, 80, 10, 3236); - attr_dev(span1, "class", "glitter-star svelte-vn7dzx"); - add_location(span1, file$v, 79, 8, 3177); - attr_dev(path2, "d", "M512 255.1c0 11.34-7.406 20.86-18.44 23.64l-171.3 42.78l-42.78 171.1C276.7 504.6 267.2 512 255.9 512s-20.84-7.406-23.62-18.44l-42.66-171.2L18.47 279.6C7.406 276.8 0 267.3 0 255.1c0-11.34 7.406-20.83 18.44-23.61l171.2-42.78l42.78-171.1C235.2 7.406 244.7 0 256 0s20.84 7.406 23.62 18.44l42.78 171.2l171.2 42.78C504.6 235.2 512 244.6 512 255.1z"); - attr_dev(path2, "class", "svelte-vn7dzx"); - add_location(path2, file$v, 86, 10, 3767); - attr_dev(svg2, "viewBox", "0 0 512 512"); - attr_dev(svg2, "class", "svelte-vn7dzx"); - add_location(svg2, file$v, 85, 10, 3729); - attr_dev(span2, "class", "glitter-star svelte-vn7dzx"); - add_location(span2, file$v, 84, 8, 3670); - attr_dev(span3, "class", "glitter-text svelte-vn7dzx"); - add_location(span3, file$v, 89, 8, 4163); - attr_dev(span4, "class", "glitter svelte-vn7dzx"); - add_location(span4, file$v, 73, 6, 2653); - attr_dev(div2, "class", "rank svelte-vn7dzx"); - add_location(div2, file$v, 72, 4, 2623); - attr_dev(h4, "class", "svelte-vn7dzx"); - add_location(h4, file$v, 93, 6, 4268); - add_location(p0, file$v, 94, 6, 4300); - add_location(p1, file$v, 95, 6, 4343); - add_location(p2, file$v, 96, 6, 4388); - add_location(p3, file$v, 97, 6, 4431); - attr_dev(section, "class", "main-stats svelte-vn7dzx"); - add_location(section, file$v, 92, 4, 4233); - attr_dev(main, "class", "svelte-vn7dzx"); - add_location(main, file$v, 66, 2, 2288); - }, - m: function mount(target, anchor) { - insert_dev(target, main, anchor); - append_dev(main, img); - append_dev(main, t0); - append_dev(main, div0); - append_dev(div0, t1); - append_dev(main, t2); - append_dev(main, div1); - append_dev(div1, t3); - append_dev(main, t4); - append_dev(main, div2); - append_dev(div2, t5); - append_dev(div2, span4); - append_dev(span4, span0); - append_dev(span0, svg0); - append_dev(svg0, path0); - /*span0_binding*/ ctx[6](span0); - append_dev(span4, t6); - append_dev(span4, span1); - append_dev(span1, svg1); - append_dev(svg1, path1); - /*span1_binding*/ ctx[7](span1); - append_dev(span4, t7); - append_dev(span4, span2); - append_dev(span2, svg2); - append_dev(svg2, path2); - /*span2_binding*/ ctx[8](span2); - append_dev(span4, t8); - append_dev(span4, span3); - append_dev(span3, t9); - append_dev(main, t10); - append_dev(main, section); - append_dev(section, h4); - append_dev(section, t12); - append_dev(section, p0); - append_dev(p0, t13); - append_dev(p0, t14); - append_dev(section, t15); - append_dev(section, p1); - append_dev(p1, t16); - append_dev(p1, t17); - append_dev(section, t18); - append_dev(section, p2); - append_dev(p2, t19); - append_dev(p2, t20); - append_dev(section, t21); - append_dev(section, p3); - append_dev(p3, t22); - append_dev(p3, t23); - }, - p: function update(ctx, dirty) { - if (dirty & /*avatar*/ 4 && !src_url_equal(img.src, img_src_value = /*avatar*/ ctx[2])) { - attr_dev(img, "src", img_src_value); - } - - if (dirty & /*errors*/ 8 && t1_value !== (t1_value = /*errors*/ ctx[3].avatar + "")) set_data_dev(t1, t1_value); - if (dirty & /*user*/ 1 && t3_value !== (t3_value = /*user*/ ctx[0].username + "")) set_data_dev(t3, t3_value); - if (dirty & /*rank*/ 2) set_data_dev(t9, /*rank*/ ctx[1]); - if (dirty & /*user*/ 1 && t14_value !== (t14_value = /*user*/ ctx[0].stats.totalGame + "")) set_data_dev(t14, t14_value); - if (dirty & /*user*/ 1 && t17_value !== (t17_value = /*user*/ ctx[0].stats.winGame + "")) set_data_dev(t17, t17_value); - if (dirty & /*user*/ 1 && t20_value !== (t20_value = /*user*/ ctx[0].stats.loseGame + "")) set_data_dev(t20, t20_value); - if (dirty & /*user*/ 1 && t23_value !== (t23_value = /*user*/ ctx[0].stats.drawGame + "")) set_data_dev(t23, t23_value); - }, - d: function destroy(detaching) { - if (detaching) detach_dev(main); - /*span0_binding*/ ctx[6](null); - /*span1_binding*/ ctx[7](null); - /*span2_binding*/ ctx[8](null); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_if_block$c.name, - type: "if", - source: "(66:2) {#if user !== undefined}", - ctx - }); - - return block; - } - - function create_fragment$y(ctx) { - let div; - let if_block = /*user*/ ctx[0] !== undefined && create_if_block$c(ctx); - - const block = { - c: function create() { - div = element("div"); - if (if_block) if_block.c(); - attr_dev(div, "class", "outer svelte-vn7dzx"); - add_location(div, file$v, 64, 0, 2239); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, div, anchor); - if (if_block) if_block.m(div, null); - }, - p: function update(ctx, [dirty]) { - if (/*user*/ ctx[0] !== undefined) { - if (if_block) { - if_block.p(ctx, dirty); - } else { - if_block = create_if_block$c(ctx); - if_block.c(); - if_block.m(div, null); - } - } else if (if_block) { - if_block.d(1); - if_block = null; - } - }, - i: noop, - o: noop, - d: function destroy(detaching) { - if (detaching) detach_dev(div); - if (if_block) if_block.d(); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$y.name, - type: "component", - source: "", - ctx - }); - - return block; - } - - function instance$y($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots('GenerateUserDisplay', slots, []); - let { user } = $$props; - let { primary } = $$props; - let rank = ''; - let avatar; - - // avatar needs to be updated!!! - console.log('Generate User Display, BEFORE on mount ' + avatar); - - // add errors - let errors = { avatar: '' }; - - onMount(async () => { - // console.log('Generate User Display, on mount ' + user.username) - if (primary) { - await fetch(`http://${'transcendance'}:${'8080'}/api/v2/user/avatar`, { method: "GET" }).then(response => { - return response.blob(); - }).then(data => { - const url = URL.createObjectURL(data); - $$invalidate(2, avatar = url); - }).catch(() => $$invalidate(3, errors.avatar = 'Sorry your avatar could not be loaded', errors)); - } else // console.log(avatar) - { - await fetch(`http://${'transcendance'}:${'8080'}/api/v2/user/avatar?username=${user.username}`, { - method: "GET", // console.log('avatar: ') - - }).then(response => { - return response.blob(); - }).then(data => { - const url = URL.createObjectURL(data); - $$invalidate(2, avatar = url); - }).catch(() => $$invalidate(3, errors.avatar = 'Sorry your avatar could not be loaded', errors)); - } - }); - - /**** THIS IS BASICALLY ALL THE RANK LOGIC ERIC HAS MADE ****/ - if (user.loseGame > user.winGame) { - rank = 'Bitch Ass Loser!'; - } else if (user.loseGame === user.winGame) { - rank = 'Fine i guess...'; - } else { - rank = 'Yea you da Boss!'; - } - - // Glittery Stars and such for Rank - let index = 0, interval = 1000; - - const rand = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; - - const animate = star => { - if (star) { - star.style.setProperty("--star-left", `${rand(-10, 100)}%`); - star.style.setProperty("--star-top", `${rand(-40, 80)}%`); - star.style.animation = "none"; - star.offsetHeight; - star.style.animation = ""; - } - }; - - let stars = []; - - for (let i = 0; i < 3; i++) { - setTimeout( - () => { - animate(stars[i]); - setInterval(() => animate(stars[i]), 1000); - }, - index++ * (interval / 3) - ); - } - - $$self.$$.on_mount.push(function () { - if (user === undefined && !('user' in $$props || $$self.$$.bound[$$self.$$.props['user']])) { - console_1$c.warn(" was created without expected prop 'user'"); - } - - if (primary === undefined && !('primary' in $$props || $$self.$$.bound[$$self.$$.props['primary']])) { - console_1$c.warn(" was created without expected prop 'primary'"); - } - }); - - const writable_props = ['user', 'primary']; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$c.warn(` was created with unknown prop '${key}'`); - }); - - function span0_binding($$value) { - binding_callbacks[$$value ? 'unshift' : 'push'](() => { - stars[0] = $$value; - $$invalidate(4, stars); - }); - } - - function span1_binding($$value) { - binding_callbacks[$$value ? 'unshift' : 'push'](() => { - stars[1] = $$value; - $$invalidate(4, stars); - }); - } - - function span2_binding($$value) { - binding_callbacks[$$value ? 'unshift' : 'push'](() => { - stars[2] = $$value; - $$invalidate(4, stars); - }); - } - - $$self.$$set = $$props => { - if ('user' in $$props) $$invalidate(0, user = $$props.user); - if ('primary' in $$props) $$invalidate(5, primary = $$props.primary); - }; - - $$self.$capture_state = () => ({ - onMount, - user, - primary, - rank, - avatar, - errors, - index, - interval, - rand, - animate, - stars - }); - - $$self.$inject_state = $$props => { - if ('user' in $$props) $$invalidate(0, user = $$props.user); - if ('primary' in $$props) $$invalidate(5, primary = $$props.primary); - if ('rank' in $$props) $$invalidate(1, rank = $$props.rank); - if ('avatar' in $$props) $$invalidate(2, avatar = $$props.avatar); - if ('errors' in $$props) $$invalidate(3, errors = $$props.errors); - if ('index' in $$props) index = $$props.index; - if ('interval' in $$props) interval = $$props.interval; - if ('stars' in $$props) $$invalidate(4, stars = $$props.stars); - }; - - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - - return [ - user, - rank, - avatar, - errors, - stars, - primary, - span0_binding, - span1_binding, - span2_binding - ]; - } - - class GenerateUserDisplay extends SvelteComponentDev { - constructor(options) { - super(options); - init$2(this, options, instance$y, create_fragment$y, safe_not_equal, { user: 0, primary: 5 }); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "GenerateUserDisplay", - options, - id: create_fragment$y.name - }); - } - - get user() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set user(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get primary() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set primary(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - /* src/pieces/chat/tmp_debug.svelte generated by Svelte v3.53.1 */ - - const file$u = "src/pieces/chat/tmp_debug.svelte"; - - function create_fragment$x(ctx) { - let div; - let p; - let t1; - let button0; - let t3; - let button1; - let t5; - let button2; - let t7; - let button3; - let t9; - let button4; - let t11; - let button5; - let t13; - let button6; - let t15; - let button7; - let t17; - let button8; - let t19; - let button9; - let t21; - let button10; - let mounted; - let dispose; - - const block = { - c: function create() { - div = element("div"); - p = element("p"); - p.textContent = "temp, for testing :"; - t1 = space(); - button0 = element("button"); - button0.textContent = "close"; - t3 = space(); - button1 = element("button"); - button1.textContent = "home"; - t5 = space(); - button2 = element("button"); - button2.textContent = "room"; - t7 = space(); - button3 = element("button"); - button3.textContent = "new"; - t9 = space(); - button4 = element("button"); - button4.textContent = "settings"; - t11 = space(); - button5 = element("button"); - button5.textContent = "room_set"; - t13 = space(); - button6 = element("button"); - button6.textContent = "protected"; - t15 = space(); - button7 = element("button"); - button7.textContent = "create"; - t17 = space(); - button8 = element("button"); - button8.textContent = "mute"; - t19 = space(); - button9 = element("button"); - button9.textContent = "user from settings"; - t21 = space(); - button10 = element("button"); - button10.textContent = "user from room_set"; - add_location(p, file$u, 8, 1, 209); - add_location(button0, file$u, 9, 1, 237); - add_location(button1, file$u, 10, 1, 305); - add_location(button2, file$u, 11, 1, 372); - add_location(button3, file$u, 12, 1, 439); - add_location(button4, file$u, 13, 1, 505); - add_location(button5, file$u, 14, 1, 576); - add_location(button6, file$u, 15, 1, 647); - add_location(button7, file$u, 16, 1, 719); - add_location(button8, file$u, 17, 1, 788); - add_location(button9, file$u, 18, 1, 855); - add_location(button10, file$u, 22, 1, 975); - set_style(div, "display", "flex"); - set_style(div, "flex-direction", "column"); - set_style(div, "font-size", "12px"); - set_style(div, "position", "fixed"); - set_style(div, "top", "20px"); - set_style(div, "left", "20px"); - set_style(div, "background-color", "white"); - add_location(div, file$u, 7, 0, 73); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, div, anchor); - append_dev(div, p); - append_dev(div, t1); - append_dev(div, button0); - append_dev(div, t3); - append_dev(div, button1); - append_dev(div, t5); - append_dev(div, button2); - append_dev(div, t7); - append_dev(div, button3); - append_dev(div, t9); - append_dev(div, button4); - append_dev(div, t11); - append_dev(div, button5); - append_dev(div, t13); - append_dev(div, button6); - append_dev(div, t15); - append_dev(div, button7); - append_dev(div, t17); - append_dev(div, button8); - append_dev(div, t19); - append_dev(div, button9); - append_dev(div, t21); - append_dev(div, button10); - - if (!mounted) { - dispose = [ - listen_dev(button0, "click", /*click_handler*/ ctx[2], false, false, false), - listen_dev(button1, "click", /*click_handler_1*/ ctx[3], false, false, false), - listen_dev(button2, "click", /*click_handler_2*/ ctx[4], false, false, false), - listen_dev(button3, "click", /*click_handler_3*/ ctx[5], false, false, false), - listen_dev(button4, "click", /*click_handler_4*/ ctx[6], false, false, false), - listen_dev(button5, "click", /*click_handler_5*/ ctx[7], false, false, false), - listen_dev(button6, "click", /*click_handler_6*/ ctx[8], false, false, false), - listen_dev(button7, "click", /*click_handler_7*/ ctx[9], false, false, false), - listen_dev(button8, "click", /*click_handler_8*/ ctx[10], false, false, false), - listen_dev(button9, "click", /*click_handler_9*/ ctx[11], false, false, false), - listen_dev(button10, "click", /*click_handler_10*/ ctx[12], false, false, false) - ]; - - mounted = true; - } - }, - p: noop, - i: noop, - o: noop, - d: function destroy(detaching) { - if (detaching) detach_dev(div); - mounted = false; - run_all(dispose); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$x.name, - type: "component", - source: "", - ctx - }); - - return block; - } - - function instance$x($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots('Tmp_debug', slots, []); - let { layout = "" } = $$props; - let { layouts = [] } = $$props; - const writable_props = ['layout', 'layouts']; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); - }); - - const click_handler = function () { - $$invalidate(0, layout = "close"); - }; - - const click_handler_1 = function () { - $$invalidate(0, layout = "home"); - }; - - const click_handler_2 = function () { - $$invalidate(0, layout = "room"); - }; - - const click_handler_3 = function () { - $$invalidate(0, layout = "new"); - }; - - const click_handler_4 = function () { - $$invalidate(0, layout = "settings"); - }; - - const click_handler_5 = function () { - $$invalidate(0, layout = "room_set"); - }; - - const click_handler_6 = function () { - $$invalidate(0, layout = "protected"); - }; - - const click_handler_7 = function () { - $$invalidate(0, layout = "create"); - }; - - const click_handler_8 = function () { - $$invalidate(0, layout = "mute"); - }; - - const click_handler_9 = function () { - $$invalidate(1, layouts = ["settings", "settings"]); - $$invalidate(0, layout = "user"); - }; - - const click_handler_10 = function () { - $$invalidate(1, layouts = ["room_set", "room_set"]); - $$invalidate(0, layout = "user"); - }; - - $$self.$$set = $$props => { - if ('layout' in $$props) $$invalidate(0, layout = $$props.layout); - if ('layouts' in $$props) $$invalidate(1, layouts = $$props.layouts); - }; - - $$self.$capture_state = () => ({ layout, layouts }); - - $$self.$inject_state = $$props => { - if ('layout' in $$props) $$invalidate(0, layout = $$props.layout); - if ('layouts' in $$props) $$invalidate(1, layouts = $$props.layouts); - }; - - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - - return [ - layout, - layouts, - click_handler, - click_handler_1, - click_handler_2, - click_handler_3, - click_handler_4, - click_handler_5, - click_handler_6, - click_handler_7, - click_handler_8, - click_handler_9, - click_handler_10 - ]; - } - - class Tmp_debug extends SvelteComponentDev { - constructor(options) { - super(options); - init$2(this, options, instance$x, create_fragment$x, safe_not_equal, { layout: 0, layouts: 1 }); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Tmp_debug", - options, - id: create_fragment$x.name - }); - } - - get layout() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set layout(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get layouts() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set layouts(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - let msgs = writable([]); - let layout = writable("close"); - let room_name = writable(""); - let user; - let socket$1; - function set_user(new_user) { user = new_user; } - function set_socket(new_socket) { socket$1 = new_socket; } - function add_msg(name, message) { - msgs.update(msgs => [...msgs, { name: "me", message: message }]); - } - - /* src/pieces/chat/Chat_box_css.svelte generated by Svelte v3.53.1 */ - const file$t = "src/pieces/chat/Chat_box_css.svelte"; - - function create_fragment$w(ctx) { - let div; - let div_class_value; - let current; - const default_slot_template = /*#slots*/ ctx[3].default; - const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[2], null); - - const block = { - c: function create() { - div = element("div"); - if (default_slot) default_slot.c(); - attr_dev(div, "class", div_class_value = "" + (/*$layout*/ ctx[1] + " chat_box" + " svelte-6ej1tr")); - set_style(div, "background-color", /*color*/ ctx[0]); - add_location(div, file$t, 4, 0, 86); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, div, anchor); - - if (default_slot) { - default_slot.m(div, null); - } - - current = true; - }, - p: function update(ctx, [dirty]) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ 4)) { - update_slot_base( - default_slot, - default_slot_template, - ctx, - /*$$scope*/ ctx[2], - !current - ? get_all_dirty_from_scope(/*$$scope*/ ctx[2]) - : get_slot_changes(default_slot_template, /*$$scope*/ ctx[2], dirty, null), - null - ); - } - } - - if (!current || dirty & /*$layout*/ 2 && div_class_value !== (div_class_value = "" + (/*$layout*/ ctx[1] + " chat_box" + " svelte-6ej1tr"))) { - attr_dev(div, "class", div_class_value); - } - - if (!current || dirty & /*color*/ 1) { - set_style(div, "background-color", /*color*/ ctx[0]); - } - }, - i: function intro(local) { - if (current) return; - transition_in(default_slot, local); - current = true; - }, - o: function outro(local) { - transition_out(default_slot, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(div); - if (default_slot) default_slot.d(detaching); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$w.name, - type: "component", - source: "", - ctx - }); - - return block; - } - - function instance$w($$self, $$props, $$invalidate) { - let $layout; - validate_store(layout, 'layout'); - component_subscribe($$self, layout, $$value => $$invalidate(1, $layout = $$value)); - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots('Chat_box_css', slots, ['default']); - let { color } = $$props; - - $$self.$$.on_mount.push(function () { - if (color === undefined && !('color' in $$props || $$self.$$.bound[$$self.$$.props['color']])) { - console.warn(" was created without expected prop 'color'"); - } - }); - - const writable_props = ['color']; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); - }); - - $$self.$$set = $$props => { - if ('color' in $$props) $$invalidate(0, color = $$props.color); - if ('$$scope' in $$props) $$invalidate(2, $$scope = $$props.$$scope); - }; - - $$self.$capture_state = () => ({ layout, color, $layout }); - - $$self.$inject_state = $$props => { - if ('color' in $$props) $$invalidate(0, color = $$props.color); - }; - - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - - return [color, $layout, $$scope, slots]; - } - - class Chat_box_css extends SvelteComponentDev { - constructor(options) { - super(options); - init$2(this, options, instance$w, create_fragment$w, safe_not_equal, { color: 0 }); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Chat_box_css", - options, - id: create_fragment$w.name - }); - } - - get color() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set color(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - /* src/pieces/chat/Element_button.svelte generated by Svelte v3.53.1 */ - const file$s = "src/pieces/chat/Element_button.svelte"; - - function create_fragment$v(ctx) { - let button; - let p; - let button_class_value; - let current; - let mounted; - let dispose; - const default_slot_template = /*#slots*/ ctx[6].default; - const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[5], null); - - const block = { - c: function create() { - button = element("button"); - p = element("p"); - if (default_slot) default_slot.c(); - attr_dev(p, "class", "svelte-1qngx3f"); - add_location(p, file$s, 23, 1, 433); - attr_dev(button, "title", /*my_title*/ ctx[1]); - attr_dev(button, "class", button_class_value = "" + (null_to_empty(/*my_class*/ ctx[0]) + " svelte-1qngx3f")); - add_location(button, file$s, 22, 0, 344); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, button, anchor); - append_dev(button, p); - - if (default_slot) { - default_slot.m(p, null); - } - - current = true; - - if (!mounted) { - dispose = [ - listen_dev(button, "click", /*update_layout*/ ctx[3], false, false, false), - listen_dev( - button, - "click", - function () { - if (is_function(/*on_click*/ ctx[2])) /*on_click*/ ctx[2].apply(this, arguments); - }, - false, - false, - false - ) - ]; - - mounted = true; - } - }, - p: function update(new_ctx, [dirty]) { - ctx = new_ctx; - - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ 32)) { - update_slot_base( - default_slot, - default_slot_template, - ctx, - /*$$scope*/ ctx[5], - !current - ? get_all_dirty_from_scope(/*$$scope*/ ctx[5]) - : get_slot_changes(default_slot_template, /*$$scope*/ ctx[5], dirty, null), - null - ); - } - } - - if (!current || dirty & /*my_title*/ 2) { - attr_dev(button, "title", /*my_title*/ ctx[1]); - } - - if (!current || dirty & /*my_class*/ 1 && button_class_value !== (button_class_value = "" + (null_to_empty(/*my_class*/ ctx[0]) + " svelte-1qngx3f"))) { - attr_dev(button, "class", button_class_value); - } - }, - i: function intro(local) { - if (current) return; - transition_in(default_slot, local); - current = true; - }, - o: function outro(local) { - transition_out(default_slot, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(button); - if (default_slot) default_slot.d(detaching); - mounted = false; - run_all(dispose); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$v.name, - type: "component", - source: "", - ctx - }); - - return block; - } - - function instance$v($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots('Element_button', slots, ['default']); - let { my_class = "" } = $$props; - let { my_title = "" } = $$props; - let { new_layout = "" } = $$props; - let { on_click = "" } = $$props; - - function update_layout() { - layout.set(new_layout); - } - - const writable_props = ['my_class', 'my_title', 'new_layout', 'on_click']; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); - }); - - $$self.$$set = $$props => { - if ('my_class' in $$props) $$invalidate(0, my_class = $$props.my_class); - if ('my_title' in $$props) $$invalidate(1, my_title = $$props.my_title); - if ('new_layout' in $$props) $$invalidate(4, new_layout = $$props.new_layout); - if ('on_click' in $$props) $$invalidate(2, on_click = $$props.on_click); - if ('$$scope' in $$props) $$invalidate(5, $$scope = $$props.$$scope); - }; - - $$self.$capture_state = () => ({ - layout, - my_class, - my_title, - new_layout, - on_click, - update_layout - }); - - $$self.$inject_state = $$props => { - if ('my_class' in $$props) $$invalidate(0, my_class = $$props.my_class); - if ('my_title' in $$props) $$invalidate(1, my_title = $$props.my_title); - if ('new_layout' in $$props) $$invalidate(4, new_layout = $$props.new_layout); - if ('on_click' in $$props) $$invalidate(2, on_click = $$props.on_click); - }; - - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - - return [my_class, my_title, on_click, update_layout, new_layout, $$scope, slots]; - } - - class Element_button extends SvelteComponentDev { - constructor(options) { - super(options); - - init$2(this, options, instance$v, create_fragment$v, safe_not_equal, { - my_class: 0, - my_title: 1, - new_layout: 4, - on_click: 2 - }); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Element_button", - options, - id: create_fragment$v.name - }); - } - - get my_class() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set my_class(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get my_title() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set my_title(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get new_layout() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set new_layout(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get on_click() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set on_click(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - /* src/pieces/chat/Layout_close.svelte generated by Svelte v3.53.1 */ - const file$r = "src/pieces/chat/Layout_close.svelte"; - - // (7:1) \n\t\n\t\n \n \n \n \n \n
\n\n\n\n\n\n\n\n","\n\n\n
\n {#if user !== undefined}\n
\n \n \n \"default\n
{errors.avatar}
\n
{user.username}
\n
Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
\n
\n

Match Statistics

\n

Total: {user.stats.totalGame}

\n

Victories: {user.stats.winGame}

\n

Losses: {user.stats.loseGame}

\n

Draws: {user.stats.drawGame}

\n
\n
\n {/if}\n
\n\n\n\n\n","\n\n
\n\t

temp, for testing :

\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
\n","import { writable } from 'svelte/store';\n\nexport let msgs = writable([]);\nexport let layout = writable(\"close\");\nexport let room_name = writable(\"\");\n\nexport let user;\nexport let socket;\n\nexport function set_user(new_user) { user = new_user; }\nexport function set_socket(new_socket) { socket = new_socket; }\n\nexport function add_msg(name: string, message: string)\n{\n\tmsgs.update(msgs => [...msgs, { name: \"me\", message: message }]);\n}\n","\n\n
\n\t\n
\n\n\n\n","\n\n\n\n\n\n\n\n","\n\n
\n\t\n
\n\n\n\n\n","import { msgs, user, layout, socket, room_name } from './Store_chat';\n\nexport async function get_room_messages()\n{\n\tconsole.log(\"in get_room_messages\");\n\tconst response = await fetch('/api/v2/chat/messages');\n\tconst data = await response.json();\n\tconst messages = data.messages;\n\n\tmessages.forEach(function(item) {\n\t\tif (item.name === user.username) {\n\t\t\titem.name = \"me\";\n\t\t}\n\t});\n\n\tmsgs.set(messages);\n}\n\nexport async function create_room(room_name, room_type)\n{\n\tconsole.log(\"in create_room\");\n\n\tlet form_data = {\n\t\troom_name: room_name,\n\t\troom_type: room_type,\n\t};\n\n\t// send the new room\n\tconst response = await fetch('/api/v2/chat/create', {\n\t\tmethod: 'POST',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody: JSON.stringify(form_data),\n\t});\n\n\t// get response status and message\n\tlet response_status = response.status;\n\tlet data = await response.json();\n\tlet response_message = \"\";\n\tif (data.message)\n\t\tresponse_message = data.message;\n\n\treturn {\n\t\tstatus: response_status,\n\t\tmessage: response_message\n\t};\n}\n\nexport async function join_room(room_name)\n{\n\tconsole.log(\"in join_room\");\n\n\tlet name = {\n\t\troom_name: room_name,\n\t}\n\tconst response = await fetch('/api/v2/chat/join', {\n\t\tmethod: 'POST',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody: JSON.stringify(name),\n\t});\n\tlet data = await response.json();\n\tconsole.log(data.message);\n\n\tsocket.emit('join', room_name);\n}\n\nexport async function change_room(name)\n{\n\tconsole.log(\"in change_room\");\n\n\tlet r_name = {\n\t\troom_name: name,\n\t}\n\tconst response = await fetch('/api/v2/chat/change', {\n\t\tmethod: 'POST',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody: JSON.stringify(r_name),\n\t});\n\tlet data = await response.json();\n\tconsole.log(data.message);\n\n\tawait get_room_messages();\n\tsocket.emit('join', name);\n\n\troom_name.set(name);\n\tlayout.set(\"room\");\n}\n\nexport async function get_all_rooms()\n{\n\tconsole.log(\"in get_all_rooms\");\n\n\t// ask api for the rooms\n\tconst response = await fetch('/api/v2/chat/myrooms');\n\tconst data = await response.json();\n\n\tconsole.log(\"data.rooms:\", data.rooms);\n\tfor (let room of data.rooms)\n\t\tconsole.log(room.name);\n\tlet rooms = data.rooms;\n\n\treturn rooms;\n}\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t

list of your rooms :

\n\t\t
\n\t\t\t
\n\t\t\t\t

/ you have no chat room yet /

\n\t\t\t
\n\t\t\t{#await rooms}\n\t\t\t\t\n\t\t\t\t

rooms are loaded...

\n\t\t\t{:then rooms}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
\n\t
\n\n
\n\n\n\n","\n\n
\n\t

{name}

\n\t

\n
\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t
\n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
\n\t
\n\n\t\n\t
\n\t\t
\n\t
\n\n\t\n\t\n\n\n\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t\n\t\t

join room :

\n\t\t
\n\t\t\t
\n\t\t\t\t

/ there are no public rooms yet /

\n\t\t\t
\n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

rooms are loaded...

\n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
\n\t
\n\n
\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t

blocked users :

\n\t\t
\n\t\t\t
\n\t\t\t\t

/ you have blocked no one /

\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n
\n\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t\n\t\t

room users :

\n\t\t
\n\t\t\t
\n\t\t\t\t

/ there are no public rooms yet /

\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n\n
\n\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t

this room is protected

\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n\n
\n\n\n\n\n","\n\n

\n\t{content}\n

\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t
\n\t\t\t{#if response.status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
\n\n
\n\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
\n\t\t

mute this user for a time :

\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t
\n\n\n
\n\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
\n\t\t

user options :

\n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
\n\n
\n\n\n\n\n","\n\n\n\n\t{#if $layout === \"home\"}\n\t\t\n\n\t{:else if $layout === \"close\"}\n\t\t\n\n\t{:else if $layout === \"room\"}\n\t\t\n\n\t{:else if $layout === \"new\"}\n\t\t\n\n\t{:else if $layout === \"settings\"}\n\t\t\n\n\t{:else if $layout === \"room_set\"}\n\t\t\n\n\t{:else if $layout === \"protected\"}\n\t\t\n\n\t{:else if $layout === \"create\"}\n\t\t\n\n\t{:else if $layout === \"mute\"}\n\t\t\n\n\t{:else if $layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","import { user, msgs } from './Store_chat';\n\nexport function socket_events(socket)\n{\n\tsocket.on('message', function(from, message)\n\t{\n\t\tconsole.log(\"received msg:\", message, from);\n\t\tif (from === user.username)\n\t\t\tfrom = \"me\";\n\t\tmsgs.update(msgs => [...msgs, { name: from, message: message }]);\n\t});\n}\n","import io from 'socket.io-client';\nimport { set_socket, set_user } from './Store_chat';\nimport { socket_events } from './Socket_events';\n\nconst address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;\n\nexport async function init_socket()\n{\n\tconst response = await fetch(`${address}/api/v2/user`);\n\tconst response_data = await response.json();\n\n\tset_user(response_data);\n\n\tlet socket = await io(address,\n\t{\n\t\tpath: '/chat',\n\t\tquery:\n\t\t{\n\t\t\tusername: response_data.username,\n\t\t},\n\t});\n\tset_socket(socket);\n\n\tsocket.on('connect', function(){ console.log(\"socket.io connected\"); });\n\tsocket.on('disconnect', function(){ console.log(\"socket.io disconnected\"); });\n\tsocket.on('connect_error', function(){ console.log(\"socket.io connect_error\"); });\n\tsocket.on('connect_timeout', function(){ console.log(\"socket.io connect_timeout\"); });\n\tsocket.on('error', function(){ console.log(\"socket.io error\"); });\n\tsocket.on('reconnect', function(){ console.log(\"socket.io reconnect\"); });\n\tsocket.on('reconnect_attempt', function(){ console.log(\"socket.io reconnect_attempt\"); });\n\tsocket.on('reconnecting', function(){ console.log(\"socket.io reconnecting\"); });\n\tsocket.on('reconnect_error', function(){ console.log(\"socket.io reconnect_error\"); });\n\tsocket.on('reconnect_failed', function(){ console.log(\"socket.io reconnect_failed\"); });\n\tsocket.on('ping', function(){ console.log(\"socket.io ping\"); });\n\tsocket.on('pong', function(){ console.log(\"socket.io pong\"); });\n\n\tsocket_events(socket);\n}\n\n","\n\n\n\n\n\n","\n\n\n\n
\n {#if user !== undefined}\n \n \n {:else}\n

Sorry

\n
Failed to load current
\n {/if}\n
\n\n\n","
\n \n
\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
\n

Look! You can change stuff

\n
\n \n
\n
\n
New Username
\n \n \n \n\t\t
{success.username}
\n
{errors.username}
\n
\n
\n
Set Two Factor Authentication
\n \n
{errors.checkbox}
\n
\n \n
\n
\n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
\n \n \n
\n
Pick a new Avatar
\n \n
{errors.avatar}
\n
\n \n
\n
\n
\n\n
\n\n\n\n\n","\n\n\n{#if user !== undefined}\n \n \n{:else}\n

Sorry

\n
Failed to load user {aUsername}
\n{/if}\n\n\n\n","\n\n\n
\n \n
    \n {#each items as item}\n
  • dispatch('tabChange', item)}>\n \n
    {item}
    \n
  • \n {/each}\n
\n
\n\n","\n\n\n\n
\n\n \n\n \n\n
\n \n {#if activeTabItem === 'All Users' && allUsers !== undefined}\n

{activeTabItem}

\n \n \n\n {#if Object.keys(allUsers).length === 0}\n
You are alone on this platform...
\n {/if}\n \n \n \n {#each allUsers as aUser}\n
viewAUser(aUser.username)}>{aUser.username}
\n \n
{aUser.status}
\n
\n {/each}\n {:else if activeTabItem === 'My Friends' && myFriendships !== undefined}\n

{activeTabItem}

\n {#if Object.keys(myFriendships).length === 0}\n
You don't have any Friends... Yet!
\n {/if}\n \n {#each myFriendships as aFriendship}\n {#if aFriendship.senderUsername !== user.username}\n
viewAUser(aFriendship.senderUsername)}>{aFriendship.senderUsername}
\n {:else if aFriendship.receiverUsername !== user.username}\n
viewAUser(aFriendship.receiverUsername)}>{aFriendship.receiverUsername}
\n {/if}\n
\n {/each}\n {:else if activeTabItem === 'Friend Requests' && requestsRecieved !== undefined}\n

{activeTabItem}

\n {#if Object.keys(requestsRecieved).length === 0}\n
You don't have any Friend Requests
\n {/if}\n \n {#each requestsRecieved as aUser}\n
viewAUser(aUser.senderUsername)}>{aUser.senderUsername}
\n
{aUser.status}
\n
\n {/each}\n {:else if activeTabItem === 'Blocked Users' && blockedUsers !== undefined}\n

{activeTabItem}

\n \n {#if Object.keys(blockedUsers).length === 0}\n
You have not Blocked any Users
\n {/if}\n \n {#each blockedUsers as aUser}\n
viewAUser(aUser.receiverUsername)}>{aUser.receiverUsername}
\n
{aUser.status}
\n
\n {/each}\n {/if}\n
\n\n\n
\n {#if usernameBeingViewed !== undefined}\n \n \n\n
\n {#if friendshipStatusFull && friendshipStatusFull.id}\n {#if friendshipStatusFull.status === 'R'}\n {#if friendshipStatusFull.senderUsername === user.username}\n
Friend Request Sent
\n {:else}\n \n \n \n {/if}\n \n {:else if friendshipStatusFull.status === 'A'}\n
You are Friends
\n \n \n {:else if friendshipStatusFull.status === 'D'}\n {#if friendshipStatusFull.senderUsername === user.username}\n
Your friend request was declined, hang in there bud.
\n {:else}\n
You declined the friend request, but you could still change your mind
\n \n {/if}\n \n {:else if friendshipStatusFull.status === 'B'}\n {#if friendshipStatusFull.senderUsername === user.username}\n \n {/if}\n {/if}\n {:else}\n \n \n {/if}\n \n
\n {:else}\n
\n

Click on a user!

\n

You'll see them displayed here

\n
\n {/if}\n\n
\n
\n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n
\n\n
\n \n
\n\n","\n\n\n\n\n","\n\n\n
\n

Potato Pong

\n \n

\n
Welcome to
\n
Potato Pong
\n

\n
\n\n\n\n\n\n\n\n","\n\n\n
\n

2FA Sign In

\n

use google authenticator

\n {#await fetchQrCodeImg}\n

Please Wait...

\n {:then data}\n \n \"A\n
\n \n \n
\n {#if wrongCode}\n \n
\n {wrongCode}\n
\n {/if}\n {:catch}\n

Unable to get QrCodeImg

\n {/await}\n
\n\n\n","\n\n
\n

You're not supposed to be here...

\n \n
\n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tnoSide = 0,\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport let muteFlag: boolean;\nexport const soundPongArr: HTMLAudioElement[] = [];\nexport let soundRoblox: HTMLAudioElement;\n\nexport function initAudio(sound: string)\n{\n\tsoundPongArr.length = 0;\n\tsoundRoblox = null;\n\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t\treturn; // Could be changed\n\t\t/*\n\t\t\tStop initAudio() here because in the current state of the game\n\t\t\tthere no way to change muteFlag after game start.\n\t\t\tIf it becomes an option,\n\t\t\twe should continue initAudio() regardless of the muteFlag.\n\t\t*/\n\t}\n\n\tsoundPongArr.push(new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"));\n\tsoundPongArr.push(new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\"));\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\n\tsoundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, step: number, callback: (count: number) => void, endCallback?: () => void) : number[]\n{\n\tconst timeoutArr: number[] = [];\n\t\n\tif (endCallback) {\n\t\ttimeoutArr.push( window.setTimeout(endCallback, count) );\n\t}\n\n\tlet reverseCount = 0;\n\twhile (count > 0)\n\t{\n\t\ttimeoutArr.push( window.setTimeout((count: number) => {\n\t\t\tconsole.log(\"countdown \", count);\n\t\t\tcallback(count);\n\t\t}, reverseCount, count)\n\t\t);\n\t\tcount -= step;\n\t\treverseCount += step;\n\t}\n\n\treturn timeoutArr;\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { muteFlag, soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchStarted: false,\n\tmatchEnded: false,\n\tmatchAborted: false\n}\n\nexport function resetGameState() {\n\tgameState.matchStarted = false;\n\tgameState.matchEnded = false;\n\tgameState.matchAborted = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket;\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tgameState.matchStarted = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAborted = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (!muteFlag)\n\t{\n\t\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\t\tsoundRoblox.play();\n\t\t}\n\t\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\t\tsoundRoblox.play();\n\t\t}\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tgameState.matchStarted = true;\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset(playerOneUsername: string) {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = playerOneUsername;\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\ttimeoutArr: number[] = [];\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { muteFlag, soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tsoundSwitch = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tif (!muteFlag)\n\t\t{\n\t\t\tthis.soundSwitch = !this.soundSwitch;\n\t\t\tsoundPongArr[this.soundSwitch ? 1 : 0].play();\n\t\t\t// let i = Math.floor(random(0, soundPongArr.length));\n\t\t\t// soundPongArr[ i ].play();\n\t\t\t// console.log(`sound_i=${i}`); // debug log\n\t\t}\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (socket && (socket.OPEN || socket.CONNECTING)) {\n\t\tsocket.close();\n\t}\n\tif (pong)\n\t{\n\t\tpong.timeoutArr.forEach((value) => {\n\t\t\tclearTimeout(value);\n\t\t});\n\t\tpong.timeoutArr = [];\n\n\t\tclearInterval(pong.handleInputInterval);\n\t\tpong.handleInputInterval = null;\n\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tpong.gameLoopInterval = null;\n\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tpong.drawLoopInterval = null;\n\n\t\tsetPong(null);\n\t}\n\tsetGc(null);\n\tsetMatchOptions(null);\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { gameState, initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(matchOptions: en.MatchOptions, options: InitOptions, gameAreaId: string, token: string)\n{\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tconst countdownArr = countdown(c.matchStartDelay, 1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count/1000}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n\tpong.timeoutArr = pong.timeoutArr.concat(countdownArr);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key); },\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
\n\n
\n\n\t{#if showError}\n\t\t
\n\t\t\t
\n\t\t\t\tError\n\t\t\t\t

{errorMessage}

\n\t\t\t
\n\t\t
\n\t{/if}\n\n\t{#if !hiddenGame}\n\t\t{#if gameState.matchEnded}\n\t\t\t
\n\t\t\t\t

The match is finished !

\n\t\t\t
\n\t\t{:else if gameState.matchAborted}\n\t\t\t
\n\t\t\t\t

The match has been aborted

\n\t\t\t
\n\t\t{/if}\n\t{/if}\n\n\t\n\n\t{#if !hiddenGame}\n\t\t{#if gameState.matchStarted && !gameState.matchEnded}\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t{:else if !gameState.matchStarted}\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t{/if}\n\t{/if}\n\n\n\t{#if showWaitPage}\n\t\t
\n\t\t\t
\n\t\t\t\tConnecting to the game...\n\t\t\t\t

Please wait...

\n\t\t\t
\n\t\t
\n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOptions}\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

sound :

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{#if options.isSomeoneIsInvited}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\tinvitations\n\t\t\t\t\t\n\t\t\t\t\t{#if invitations.length !== 0}\n\t\t\t\t\t\t{#each invitations as invitation}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t{:else}\n\t\t\t\t\t\t

Currently, no one asked to play with you.

\n\t\t\t\t\t{/if}\n\t\t\t\t
\n\t\t\t
\n\t\t{/if}\n\t{/if}\n\n
\n\n\n","\n\n
\n
\n\n
\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t{#each allUsers as user, i}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\n\t\t\t\t\t{:else}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{/each}\n\t\t\n\t
#UsernameWinLoseDrawGames Played
{i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
\n
\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t{#if !hiddenGame}\n\t\t{#if gameState.matchEnded}\n\t\t\t
    \n\t\t\t\t

    The match is finished !

    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n\t\n\n\t{#if !hiddenGame}\n\t\t{#if !gameState.matchEnded}\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\toptions\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{#if matchList.length !== 0}\n\t\t\t\t\n\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t{:else}\n\t\t\t\t

    no match ongoing

    \n\t\t\t{/if}\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': wrap({\n component: Game,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/spectator': wrap({\n component: GameSpectator,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/ranking': wrap({\n component: Ranking,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","socket","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","io","create_if_block_12","create_if_block_8","create_if_block_9","create_if_block_11","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","create_if_block_3","create_if_block_4","create_if_block_2","create_if_block_5","gameAreaId","watchGameStateIntervalRate","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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AA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UA8BO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OA7BN,UAAY,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACZ,UA2BQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OA1BP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;;OAIhC,UAAoC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;qEAvKlB,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAP3D,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCWoD,MAExE,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGkC,QAElC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGgD,OAEhD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAIqD,aAEpD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAMO,cAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACO,iBAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAEE,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAIC,YAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAEE,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAvCY,GAAI,CAAA,CAAA,CAAA;;wCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAejE,CAAA,IAAA,SAAA,YAAA,GAAI,QAAK,UAAU,IAAAE,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBlB,CAAA,IAAA,SAAA,YAAA,GAAI,QAAK,UAAU,IAAAF,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OArC1B,UAgDK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;OAvBJ,UAqBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OApBJ,UAAqC,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;qEAvBlB,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;IAejE,GAAA,aAAA,GAAI,QAAK,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBlB,GAAA,aAAA,GAAI,QAAK,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA7Cd,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IAEhB,CAAA,IAAA,IAAI,GAAG,MAAM,CAAA;IACb,CAAA,IAAA,KAAK,GAAG,OAAO,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICuEA,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHT,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHP,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,oBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHN,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,uBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHX,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,qBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,sBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHd,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,mBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAJxB,EAAA,gBAAA,GAAO,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGb,EAAA,gBAAA,GAAO,QAAK,OAAO,EAAA,OAAA,CAAA,CAAA;IAGnB,EAAA,gBAAA,GAAO,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGlB,EAAA,gBAAA,GAAO,QAAK,KAAK,EAAA,OAAA,CAAA,CAAA;IAGjB,EAAA,gBAAA,GAAO,QAAK,UAAU,EAAA,OAAA,CAAA,CAAA;IAGtB,EAAA,gBAAA,GAAO,QAAK,UAAU,EAAA,OAAA,CAAA,CAAA;IAGtB,EAAA,gBAAA,GAAO,QAAK,WAAW,EAAA,OAAA,CAAA,CAAA;IAGvB,EAAA,gBAAA,GAAO,QAAK,QAAQ,EAAA,OAAA,CAAA,CAAA;IAGpB,EAAA,gBAAA,GAAO,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGlB,EAAA,gBAAA,GAAO,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA7Bb,GAAK,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kEAAL,GAAK,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA3BT,KAAK,EAAA,GAAA,OAAA,CAAA;IACZ,CAAA,IAAA,IAAI,GAAG,EAAE,CAAA;IACT,CAAA,IAAA,KAAK,GAAG,KAAK,CAAA;SACb,OAAO,GAAA,CAAI,MAAM,EAAE,MAAM,CAAA,CAAA;;;;IAIpB,CAAA,SAAA,WAAW,CAAC,OAAO,EAAA;IAE3B,EAAA,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAA,CAAA;IAC/B,EAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAA,CAAA;IAC1B,EAAA,IAAA,OAAO,CAAC,MAAM,KAAK,CAAC,EACvB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CACZ,CAAA,CAAA,MAAA,IAAA,OAAO,KAAK,OAAO,EAAA,OAAA,MAAA,IAEnB,OAAO,KAAK,OAAO,CAAC,CAAC,oBAErB,OAAO,KAAK,OAAO,CAAC,CAAC,mBAC7B,OAAO,GAAA,CAAI,OAAO,EAAE,MAAM,yBAE1B,OAAO,GAAA,CAAI,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA;IAC9B,EAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAE/B,WAAW,CAAC,OAAO,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC7CvB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;IAC5B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAC9B,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAC9B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;IACzC,IAAI,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE;;ICX5D,MAAMG,gBAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC7E,MAAMC,uBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE;IACA,MAAMC,QAAM,GAAG,GAAG,IAAI;IACtB,IAAI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU;IACnD,UAAU,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACjC,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC;IACnD,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,QAAQ,KAAK;IACnE,IAAI,IAAIF,gBAAc,IAAI,IAAI,YAAY,IAAI,EAAE;IAChD,QAAQ,IAAI,cAAc,EAAE;IAC5B,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb,YAAY,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtD,SAAS;IACT,KAAK;IACL,SAAS,IAAIC,uBAAqB;IAClC,SAAS,IAAI,YAAY,WAAW,IAAIC,QAAM,CAAC,IAAI,CAAC,CAAC,EAAE;IACvD,QAAQ,IAAI,cAAc,EAAE;IAC5B,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb,YAAY,OAAO,kBAAkB,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClE,SAAS;IACT,KAAK;IACL;IACA,IAAI,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;IAC/C,IAAI,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,GAAG,YAAY;IACpC,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC;IACN,IAAI,OAAO,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;;ICvCD,MAAM,KAAK,GAAG,kEAAkE,CAAC;IACjF;IACA,MAAMC,QAAM,GAAG,OAAO,UAAU,KAAK,WAAW,GAAG,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvC,IAAIA,QAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAiBM,MAAMC,QAAM,GAAG,CAAC,MAAM,KAAK;IAClC,IAAI,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACnH,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC3C,QAAQ,YAAY,EAAE,CAAC;IACvB,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC/C,YAAY,YAAY,EAAE,CAAC;IAC3B,SAAS;IACT,KAAK;IACL,IAAI,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3F,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;IACjC,QAAQ,QAAQ,GAAGD,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;IACvD,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,EAAE,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC9D,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC7D,KAAK;IACL,IAAI,OAAO,WAAW,CAAC;IACvB,CAAC;;ICvCD,MAAMF,uBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,UAAU,KAAK;IACpD,IAAI,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;IAC3C,QAAQ,OAAO;IACf,YAAY,IAAI,EAAE,SAAS;IAC3B,YAAY,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC;IACtD,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;IACtB,QAAQ,OAAO;IACf,YAAY,IAAI,EAAE,SAAS;IAC3B,YAAY,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IAC5E,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,UAAU,EAAE;IACrB,QAAQ,OAAO,YAAY,CAAC;IAC5B,KAAK;IACL,IAAI,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC;IACnC,UAAU;IACV,YAAY,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC5C,YAAY,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,SAAS;IACT,UAAU;IACV,YAAY,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC5C,SAAS,CAAC;IACV,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;IACjD,IAAI,IAAIA,uBAAqB,EAAE;IAC/B,QAAQ,MAAM,OAAO,GAAGG,QAAM,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,OAAO,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtC,KAAK;IACL,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;IACxC,IAAI,QAAQ,UAAU;IACtB,QAAQ,KAAK,MAAM;IACnB,YAAY,OAAO,IAAI,YAAY,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACzE,QAAQ,KAAK,aAAa,CAAC;IAC3B,QAAQ;IACR,YAAY,OAAO,IAAI,CAAC;IACxB,KAAK;IACL,CAAC;;IC7CD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK;IAC7C;IACA,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,IAAI,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;IAClB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;IACnC;IACA,QAAQ,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,IAAI;IACrD,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;IAC9C,YAAY,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE;IACpC,gBAAgB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,aAAa;IACb,SAAS,CAAC,CAAC;IACX,KAAK,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,UAAU,KAAK;IACtD,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;IACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACpD,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1E,QAAQ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,QAAQ,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,EAAE;IAC5C,YAAY,MAAM;IAClB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IACK,MAAMC,UAAQ,GAAG,CAAC;;IC9BzB;IACA;IACA;IACA;IACA;AACA;IACO,SAAS,OAAO,CAAC,GAAG,EAAE;IAC7B,EAAE,IAAI,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,KAAK,CAAC,GAAG,EAAE;IACpB,EAAE,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;IACrC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,EAAE;IACpB,OAAO,CAAC,SAAS,CAAC,gBAAgB,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IACxD,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE;IACpE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IAC5C,EAAE,SAAS,EAAE,GAAG;IAChB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9B,GAAG;AACH;IACA,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrB,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,GAAG;IACrB,OAAO,CAAC,SAAS,CAAC,cAAc;IAChC,OAAO,CAAC,SAAS,CAAC,kBAAkB;IACpC,OAAO,CAAC,SAAS,CAAC,mBAAmB,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IAC3D,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1C;IACA;IACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;IAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAC/C,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC;AAC9B;IACA;IACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;IAC7B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,EAAE,CAAC;IACT,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;IACnC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM;IACZ,KAAK;IACL,GAAG;AACH;IACA;IACA;IACA,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAC9B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,CAAC;IACxC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1C;IACA,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAC/C;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,GAAG;AACH;IACA,EAAE,IAAI,SAAS,EAAE;IACjB,IAAI,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;IAC1D,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;AACxD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,CAAC;IAC7C,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,CAAC;IAChD,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;;ICxKM,MAAM,cAAc,GAAG,CAAC,MAAM;IACrC,IAAI,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;IACrC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,SAAS,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC5C,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;IACzC,KAAK;IACL,CAAC,GAAG;;ICTG,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE;IACnC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;IACnC,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5B,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,KAAK,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IACD;IACA,MAAM,kBAAkB,GAAG,UAAU,CAAC;IACtC,MAAM,oBAAoB,GAAG,YAAY,CAAC;IACnC,SAAS,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE;IACjD,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;IAC9B,QAAQ,GAAG,CAAC,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAACC,cAAU,CAAC,CAAC;IAC/D,QAAQ,GAAG,CAAC,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IACnE,KAAK;IACL,SAAS;IACT,QAAQ,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IACvD,QAAQ,GAAG,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IAC3D,KAAK;IACL,CAAC;IACD;IACA,MAAM,eAAe,GAAG,IAAI,CAAC;IAC7B;IACO,SAAS,UAAU,CAAC,GAAG,EAAE;IAChC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK;IACL;IACA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC;IACrE,CAAC;IACD,SAAS,UAAU,CAAC,GAAG,EAAE;IACzB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAChD,QAAQ,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,QAAQ,IAAI,CAAC,GAAG,IAAI,EAAE;IACtB,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa,IAAI,CAAC,GAAG,KAAK,EAAE;IAC5B,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE;IAC5C,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa;IACb,YAAY,CAAC,EAAE,CAAC;IAChB,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB;;IChDA,MAAM,cAAc,SAAS,KAAK,CAAC;IACnC,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;IAC9C,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACvC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IACrC,KAAK;IACL,CAAC;IACM,MAAM,SAAS,SAAS,OAAO,CAAC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;IAC1C,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACtF,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,IAAI,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE;IACpE,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACzE,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACxC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,SAGS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,QAAQ,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,OAAO,EAAE;IACrB,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACnC,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,KAAK;IACL;;ICnHA;IAEA,MAAM,QAAQ,GAAG,kEAAkE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC;IACrH,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAC1B;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAASC,QAAM,CAAC,GAAG,EAAE;IAC5B,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;IACrB,IAAI,GAAG;IACP,QAAQ,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;IACnD,QAAQ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;IACvC,KAAK,QAAQ,GAAG,GAAG,CAAC,EAAE;IACtB,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC;IAeD;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,KAAK,GAAG;IACxB,IAAI,MAAM,GAAG,GAAGA,QAAM,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,KAAK,IAAI;IACpB,QAAQ,OAAO,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC;IACpC,IAAI,OAAO,GAAG,GAAG,GAAG,GAAGA,QAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD;IACA;IACA;IACA,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;IACtB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;;ICjDxB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,MAAM,CAAC,GAAG,EAAE;IAC5B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;IACvB,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,IAAI,GAAG,CAAC,MAAM;IAC1B,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC3B,YAAY,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,SAAS;IACT,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,MAAM,CAAC,EAAE,EAAE;IAC3B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAClD,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,QAAQ,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf;;ICjCA;IACA,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI;IACJ,IAAI,KAAK,GAAG,OAAO,cAAc,KAAK,WAAW;IACjD,QAAQ,iBAAiB,IAAI,IAAI,cAAc,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,EAAE;IACZ;IACA;IACA,CAAC;IACM,MAAM,OAAO,GAAG,KAAK;;ICV5B;IAGO,SAAS,GAAG,CAAC,IAAI,EAAE;IAC1B,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC;IACA,IAAI,IAAI;IACR,QAAQ,IAAI,WAAW,KAAK,OAAO,cAAc,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE;IAC5E,YAAY,OAAO,IAAI,cAAc,EAAE,CAAC;IACxC,SAAS;IACT,KAAK;IACL,IAAI,OAAO,CAAC,EAAE,GAAG;IACjB,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI;IACZ,YAAY,OAAO,IAAID,cAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9F,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE,GAAG;IACrB,KAAK;IACL;;ICVA,SAAS,KAAK,GAAG,GAAG;IACpB,MAAM,OAAO,GAAG,CAAC,YAAY;IAC7B,IAAI,MAAM,GAAG,GAAG,IAAIE,GAAc,CAAC;IACnC,QAAQ,OAAO,EAAE,KAAK;IACtB,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC;IACpC,CAAC,GAAG,CAAC;IACE,MAAM,OAAO,SAAS,SAAS,CAAC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IAC7B,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,MAAM,KAAK,GAAG,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACzD,YAAY,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACrC;IACA,YAAY,IAAI,CAAC,IAAI,EAAE;IACvB,gBAAgB,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAC5C,aAAa;IACb,YAAY,IAAI,CAAC,EAAE;IACnB,gBAAgB,CAAC,OAAO,QAAQ,KAAK,WAAW;IAChD,oBAAoB,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;IACvD,oBAAoB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACvC,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;IAC5C,SAAS;IACT;IACA;IACA;IACA,QAAQ,MAAM,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;IACrD,QAAQ,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC;IACtD,KAAK;IACL;IACA;IACA;IACA,IAAI,IAAI,IAAI,GAAG;IACf,QAAQ,OAAO,SAAS,CAAC;IACzB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACvC,YAAY,OAAO,EAAE,CAAC;IACtB,SAAS,CAAC;IACV,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC5C,YAAY,IAAI,KAAK,GAAG,CAAC,CAAC;IAC1B,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;IAC9B,gBAAgB,KAAK,EAAE,CAAC;IACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY;IACtD,oBAAoB,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;IACvC,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChC,gBAAgB,KAAK,EAAE,CAAC;IACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY;IAC/C,oBAAoB,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;IACvC,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IAC5B,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI;IACnC;IACA,YAAY,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;IACzE,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B,aAAa;IACb;IACA,YAAY,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE;IACzC,gBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,CAAC;IAChF,gBAAgB,OAAO,KAAK,CAAC;IAC7B,aAAa;IACb;IACA,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS,CAAC;IACV;IACA,QAAQ,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtE;IACA,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;IAC1C;IACA,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACjC,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC9C,YAAY,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IAC5C,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,aAEa;IACb,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,SAAS,CAAC;IACV,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACxC,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,aAAa;IACb;IACA;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,aAAa,CAAC,OAAO,EAAE,IAAI,IAAI;IACvC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;IACrC,gBAAgB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,aAAa,CAAC,CAAC;IACf,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG;IACV,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3D,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACnD,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,CAAC;IACtD,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;IAChD,YAAY,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;IAClE,iBAAiB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;IACvE,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,SAAS;IACT,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,QAAQ,MAAM;IACtB,YAAY,KAAK;IACjB,aAAa,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,YAAY,IAAI;IAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,EAAE;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE;IACvB,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE;IACtB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC,YAAY,MAAM,EAAE,MAAM;IAC1B,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC,CAAC;IACX,QAAQ,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9B,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;IAChD,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IACnC,QAAQ,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;IAChD,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IAC3B,KAAK;IACL,CAAC;IACM,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IAC3C,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAC/D,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACtI,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,QAAQ,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAIA,GAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,QAAQ,IAAI;IACZ,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,YAAY,IAAI;IAChB,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC5C,oBAAoB,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACjF,oBAAoB,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC1D,wBAAwB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACtE,4BAA4B,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,yBAAyB;IACzB,qBAAqB;IACrB,iBAAiB;IACjB,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB,YAAY,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;IACxC,gBAAgB,IAAI;IACpB,oBAAoB,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IACrF,iBAAiB;IACjB,gBAAgB,OAAO,CAAC,EAAE,GAAG;IAC7B,aAAa;IACb,YAAY,IAAI;IAChB,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB;IACA,YAAY,IAAI,iBAAiB,IAAI,GAAG,EAAE;IAC1C,gBAAgB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IAChE,aAAa;IACb,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAC1C,gBAAgB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IACvD,aAAa;IACb,YAAY,GAAG,CAAC,kBAAkB,GAAG,MAAM;IAC3C,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,UAAU;IACxC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE;IAC/D,oBAAoB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClC,iBAAiB;IACjB,qBAAqB;IACrB;IACA;IACA,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM;IAC5C,wBAAwB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtF,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAC1B,iBAAiB;IACjB,aAAa,CAAC;IACd,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB;IACA;IACA;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;IACpC,gBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,aAAa,EAAE,CAAC,CAAC,CAAC;IAClB,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACjD,YAAY,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAChD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,SAAS,EAAE;IACvB,QAAQ,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE;IAClE,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAC5C,QAAQ,IAAI,SAAS,EAAE;IACvB,YAAY,IAAI;IAChB,gBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACjC,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB,SAAS;IACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS;IACT,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IACxB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;IAC3C,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;IAC3B,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,YAAY,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,KAAK;IACL,CAAC;IACD,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;IACtB;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IACrC;IACA,IAAI,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;IAC3C;IACA,QAAQ,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC/C,KAAK;IACL,SAAS,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;IACrD,QAAQ,MAAM,gBAAgB,GAAG,YAAY,IAAIF,cAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IACpF,QAAQ,gBAAgB,CAAC,gBAAgB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IACjE,KAAK;IACL,CAAC;IACD,SAAS,aAAa,GAAG;IACzB,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE;IACpC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IAChD,YAAY,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACxC,SAAS;IACT,KAAK;IACL;;ICjZO,MAAM,QAAQ,GAAG,CAAC,MAAM;IAC/B,IAAI,MAAM,kBAAkB,GAAG,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC;IACtG,IAAI,IAAI,kBAAkB,EAAE;IAC5B,QAAQ,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE,EAAE,YAAY,KAAK,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,KAAK;IACL,CAAC,GAAG,CAAC;IACE,MAAMG,WAAS,GAAGH,cAAU,CAAC,SAAS,IAAIA,cAAU,CAAC,YAAY,CAAC;IAClE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IACnC,MAAM,iBAAiB,GAAG,aAAa;;ICN9C;IACA,MAAM,aAAa,GAAG,OAAO,SAAS,KAAK,WAAW;IACtD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;IACzC,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC;IAC/C,MAAM,EAAE,SAAS,SAAS,CAAC;IAClC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IAChD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,IAAI,GAAG;IACf,QAAQ,OAAO,WAAW,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;IAC3B;IACA,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C;IACA,QAAQ,MAAM,IAAI,GAAG,aAAa;IAClC,cAAc,EAAE;IAChB,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IACnO,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IACpC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAClD,SAAS;IACT,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,EAAE;IACnB,gBAAgB,qBAAqB,IAAI,CAAC,aAAa;IACvD,sBAAsB,SAAS;IAC/B,0BAA0B,IAAIG,WAAS,CAAC,GAAG,EAAE,SAAS,CAAC;IACvD,0BAA0B,IAAIA,WAAS,CAAC,GAAG,CAAC;IAC5C,sBAAsB,IAAIA,WAAS,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1D,SAAS;IACT,QAAQ,OAAO,GAAG,EAAE;IACpB,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnD,SAAS;IACT,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,iBAAiB,CAAC;IACzE,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,iBAAiB,GAAG;IACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM;IAC/B,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACxC,aAAa;IACb,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC;IACrD,YAAY,WAAW,EAAE,6BAA6B;IACtD,YAAY,OAAO,EAAE,UAAU;IAC/B,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAClE,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B;IACA;IACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACjD,YAAY,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,YAAY,MAAM,UAAU,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,YAAY,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI;IAC9D;IACA,gBAAgB,MAAM,IAAI,GAAG,EAAE,CAAC;IAchC;IACA;IACA;IACA,gBAAgB,IAAI;IACpB,oBAAoB,IAAI,qBAAqB,EAAE;IAC/C;IACA,wBAAwB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,qBAGqB;IACrB,iBAAiB;IACjB,gBAAgB,OAAO,CAAC,EAAE;IAC1B,iBAAiB;IACjB,gBAAgB,IAAI,UAAU,EAAE;IAChC;IACA;IACA,oBAAoB,QAAQ,CAAC,MAAM;IACnC,wBAAwB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7C,wBAAwB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACnD,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;IAC5C,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAC5B,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG;IACV,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACvD,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;IAChE,iBAAiB,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;IACrE,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACzC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,CAAC;IACtD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAClC,YAAY,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,QAAQ,MAAM;IACtB,YAAY,KAAK;IACjB,aAAa,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,YAAY,IAAI;IAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,EAAE;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,CAAC,CAACA,WAAS,CAAC;IAC3B,KAAK;IACL;;ICzLO,MAAM,UAAU,GAAG;IAC1B,IAAI,SAAS,EAAE,EAAE;IACjB,IAAI,OAAO,EAAE,OAAO;IACpB,CAAC;;ICLD;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,EAAE,GAAG,yOAAyO,CAAC;IACrP,MAAM,KAAK,GAAG;IACd,IAAI,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IACjJ,CAAC,CAAC;IACK,SAAS,KAAK,CAAC,GAAG,EAAE;IAC3B,IAAI,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5B,QAAQ,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1G,KAAK;IACL,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,KAAK;IACL,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5B,QAAQ,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;IACzB,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjF,QAAQ,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3F,QAAQ,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,KAAK;IACL,IAAI,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,IAAI,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD,SAAS,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE;IAC9B,IAAI,MAAM,IAAI,GAAG,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;IACtD,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;IAC/B,QAAQ,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL,IAAI,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;IAC9B,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,2BAA2B,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IACrE,QAAQ,IAAI,EAAE,EAAE;IAChB,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC1B,SAAS;IACT,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,CAAC;IAChB;;IC1CO,MAAMC,QAAM,SAAS,OAAO,CAAC;IACpC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE;IAChC,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IAC5C,YAAY,IAAI,GAAG,GAAG,CAAC;IACvB,YAAY,GAAG,GAAG,IAAI,CAAC;IACvB,SAAS;IACT,QAAQ,IAAI,GAAG,EAAE;IACjB,YAAY,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,YAAY,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;IACrC,YAAY,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC;IAC7E,YAAY,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACjC,YAAY,IAAI,GAAG,CAAC,KAAK;IACzB,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,SAAS;IACT,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE;IAC5B,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAClD,SAAS;IACT,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,MAAM;IACnB,YAAY,IAAI,IAAI,IAAI,CAAC,MAAM;IAC/B,kBAAkB,IAAI,CAAC,MAAM;IAC7B,kBAAkB,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACpF,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACzC;IACA,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACnD,SAAS;IACT,QAAQ,IAAI,CAAC,QAAQ;IACrB,YAAY,IAAI,CAAC,QAAQ;IACzB,iBAAiB,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;IACpF,QAAQ,IAAI,CAAC,IAAI;IACjB,YAAY,IAAI,CAAC,IAAI;IACrB,iBAAiB,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI;IACjE,sBAAsB,QAAQ,CAAC,IAAI;IACnC,sBAAsB,IAAI,CAAC,MAAM;IACjC,0BAA0B,KAAK;IAC/B,0BAA0B,IAAI,CAAC,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtE,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,YAAY,IAAI,EAAE,YAAY;IAC9B,YAAY,KAAK,EAAE,KAAK;IACxB,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,OAAO,EAAE,IAAI;IACzB,YAAY,cAAc,EAAE,GAAG;IAC/B,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,kBAAkB,EAAE,IAAI;IACpC,YAAY,iBAAiB,EAAE;IAC/B,gBAAgB,SAAS,EAAE,IAAI;IAC/B,aAAa;IACb,YAAY,gBAAgB,EAAE,EAAE;IAChC,YAAY,mBAAmB,EAAE,IAAI;IACrC,SAAS,EAAE,IAAI,CAAC,CAAC;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACjE,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;IACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACvB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IACjC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAChC;IACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACrC,QAAQ,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;IACpD,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;IAC/C;IACA;IACA;IACA,gBAAgB,IAAI,CAAC,yBAAyB,GAAG,MAAM;IACvD,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;IACxC;IACA,wBAAwB,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAC5D,wBAAwB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC/C,qBAAqB;IACrB,iBAAiB,CAAC;IAClB,gBAAgB,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACxF,aAAa;IACb,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;IAC/C,gBAAgB,IAAI,CAAC,oBAAoB,GAAG,MAAM;IAClD,oBAAoB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;IACpD,wBAAwB,WAAW,EAAE,yBAAyB;IAC9D,qBAAqB,CAAC,CAAC;IACvB,iBAAiB,CAAC;IAClB,gBAAgB,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC9E,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,eAAe,CAAC,IAAI,EAAE;IAC1B,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD;IACA,QAAQ,KAAK,CAAC,GAAG,GAAGL,UAAQ,CAAC;IAC7B;IACA,QAAQ,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC/B;IACA,QAAQ,IAAI,IAAI,CAAC,EAAE;IACnB,YAAY,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IAChC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE;IACpF,YAAY,KAAK;IACjB,YAAY,MAAM,EAAE,IAAI;IACxB,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACnC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;IAC/B,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;IAC3B,SAAS,CAAC,CAAC;IACX,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,SAAS,CAAC;IACtB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe;IACrC,YAAYK,QAAM,CAAC,qBAAqB;IACxC,YAAY,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE;IACzD,YAAY,SAAS,GAAG,WAAW,CAAC;IACpC,SAAS;IACT,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;IAC/C;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;IACpC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IACtE,aAAa,EAAE,CAAC,CAAC,CAAC;IAClB,YAAY,OAAO;IACnB,SAAS;IACT,aAAa;IACb,YAAY,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC;IACA,QAAQ,IAAI;IACZ,YAAY,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACpC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,CAAC,SAAS,EAAE;IAC5B,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAChD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC;IACA,QAAQ,SAAS;IACjB,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,IAAI,EAAE;IAChB,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQA,QAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC7C,QAAQ,MAAM,eAAe,GAAG,MAAM;IACtC,YAAY,IAAI,MAAM;IACtB,gBAAgB,OAAO;IACvB,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9D,YAAY,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI;IAC5C,gBAAgB,IAAI,MAAM;IAC1B,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,OAAO,KAAK,GAAG,CAAC,IAAI,EAAE;IACjE,oBAAoB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1C,oBAAoB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,oBAAoB,IAAI,CAAC,SAAS;IAClC,wBAAwB,OAAO;IAC/B,oBAAoBA,QAAM,CAAC,qBAAqB,GAAG,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC;IAClF,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM;IAC/C,wBAAwB,IAAI,MAAM;IAClC,4BAA4B,OAAO;IACnC,wBAAwB,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxD,4BAA4B,OAAO;IACnC,wBAAwB,OAAO,EAAE,CAAC;IAClC,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrD,wBAAwB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9D,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChE,wBAAwB,SAAS,GAAG,IAAI,CAAC;IACzC,wBAAwB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/C,wBAAwB,IAAI,CAAC,KAAK,EAAE,CAAC;IACrC,qBAAqB,CAAC,CAAC;IACvB,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACzD;IACA,oBAAoB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IACnD,oBAAoB,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC3D,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,SAAS,CAAC;IACV,QAAQ,SAAS,eAAe,GAAG;IACnC,YAAY,IAAI,MAAM;IACtB,gBAAgB,OAAO;IACvB;IACA,YAAY,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,OAAO,EAAE,CAAC;IACtB,YAAY,SAAS,CAAC,KAAK,EAAE,CAAC;IAC9B,YAAY,SAAS,GAAG,IAAI,CAAC;IAC7B,SAAS;IACT;IACA,QAAQ,MAAM,OAAO,GAAG,GAAG,IAAI;IAC/B,YAAY,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;IAC3D;IACA,YAAY,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IAC7C,YAAY,eAAe,EAAE,CAAC;IAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrD,SAAS,CAAC;IACV,QAAQ,SAAS,gBAAgB,GAAG;IACpC,YAAY,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,SAAS,OAAO,GAAG;IAC3B,YAAY,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,SAAS;IACT;IACA,QAAQ,SAAS,SAAS,CAAC,EAAE,EAAE;IAC/B,YAAY,IAAI,SAAS,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;IACzD,gBAAgB,eAAe,EAAE,CAAC;IAClC,aAAa;IACb,SAAS;IACT;IACA,QAAQ,MAAM,OAAO,GAAG,MAAM;IAC9B,YAAY,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9D,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAChE,YAAY,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7C,SAAS,CAAC;IACV,QAAQ,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAChD,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1C,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,QAAQA,QAAM,CAAC,qBAAqB,GAAG,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC3E,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB;IACA;IACA,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO;IAC7B,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IAClC,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC3C,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC/B,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,aAAa;IACb,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;IACzC,YAAY,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAC3C,YAAY,QAAQ,MAAM,CAAC,IAAI;IAC/B,gBAAgB,KAAK,MAAM;IAC3B,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,MAAM;IAC3B,oBAAoB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5C,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5C,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,OAAO;IAC5B,oBAAoB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1D;IACA,oBAAoB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3C,oBAAoB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,SAAS;IAC9B,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,oBAAoB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9D,oBAAoB,MAAM;IAC1B,aAAa;IACb,SAES;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7C,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3B,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC9C,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IAC1C,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxC,YAAY,OAAO;IACnB,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,gBAAgB,GAAG;IACvB,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IACxD,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACjC,YAAY,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAC1C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACvD;IACA;IACA;IACA,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxC,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ;IACnC,YAAY,CAAC,IAAI,CAAC,SAAS;IAC3B,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACtD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC;IACA;IACA,YAAY,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAChD,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,kBAAkB,GAAG;IACzB,QAAQ,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU;IACtD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;IAC7C,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,sBAAsB,EAAE;IACrC,YAAY,OAAO,IAAI,CAAC,WAAW,CAAC;IACpC,SAAS;IACT,QAAQ,IAAI,WAAW,GAAG,CAAC,CAAC;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1D,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAChD,aAAa;IACb,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;IACxD,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,aAAa;IACb,YAAY,WAAW,IAAI,CAAC,CAAC;IAC7B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IACxC,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,EAAE;IACxC,YAAY,EAAE,GAAG,IAAI,CAAC;IACtB,YAAY,IAAI,GAAG,SAAS,CAAC;IAC7B,SAAS;IACT,QAAQ,IAAI,UAAU,KAAK,OAAO,OAAO,EAAE;IAC3C,YAAY,EAAE,GAAG,OAAO,CAAC;IACzB,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS;IACT,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3E,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAChC,QAAQ,OAAO,CAAC,QAAQ,GAAG,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC;IACtD,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,OAAO,EAAE,OAAO;IAC5B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,IAAI,EAAE;IACd,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACnC,SAAS,CAAC;IACV,QAAQ,MAAM,eAAe,GAAG,MAAM;IACtC,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACtD,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS,CAAC;IACV,QAAQ,MAAM,cAAc,GAAG,MAAM;IACrC;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACvD,SAAS,CAAC;IACV,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACzE,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IACzC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;IACzC,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;IACxC,wBAAwB,cAAc,EAAE,CAAC;IACzC,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB,KAAK,EAAE,CAAC;IAChC,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,iBAAiB,IAAI,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,cAAc,EAAE,CAAC;IACjC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,KAAK,EAAE,CAAC;IACxB,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQA,QAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC7C,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;IACzC,YAAY,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3C;IACA,YAAY,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvD;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACnC;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAChD,YAAY,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;IAC3D,gBAAgB,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAC3F,gBAAgB,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACjF,aAAa;IACb;IACA,YAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACvC;IACA,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3B;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5D;IACA;IACA,YAAY,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAClC,YAAY,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACnC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,QAAQ,EAAE;IAC7B,QAAQ,MAAM,gBAAgB,GAAG,EAAE,CAAC;IACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,QAAQ,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,QAAQ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC3B,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,gBAAgB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,SAAS;IACT,QAAQ,OAAO,gBAAgB,CAAC;IAChC,KAAK;IACL,CAAC;AACDA,YAAM,CAAC,QAAQ,GAAGL,UAAQ;;ICnkB1B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE;IACzC,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC;IAClB;IACA,IAAI,GAAG,GAAG,GAAG,KAAK,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,IAAI,IAAI,GAAG;IACnB,QAAQ,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAC7C;IACA,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IACvC,gBAAgB,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;IACzC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;IACrC,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAC9C,YAAY,IAAI,WAAW,KAAK,OAAO,GAAG,EAAE;IAC5C,gBAAgB,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;IAChD,aAAa;IACb,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;IACvC,aAAa;IACb,SAAS;IACT;IACA,QAAQ,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,KAAK;IACL;IACA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;IACnB,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC9C,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5B,SAAS;IACT,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IACpD,YAAY,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IAC7B,SAAS;IACT,KAAK;IACL,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;IAC/B,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;IACxD;IACA,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACjE;IACA,IAAI,GAAG,CAAC,IAAI;IACZ,QAAQ,GAAG,CAAC,QAAQ;IACpB,YAAY,KAAK;IACjB,YAAY,IAAI;IAChB,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,OAAO,GAAG,CAAC;IACf;;IC1DA,MAAM,qBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK;IACxB,IAAI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU;IACnD,UAAU,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACjC,UAAU,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC3C,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC5D;IACA;IACA;IACA;IACA;IACO,SAAS,QAAQ,CAAC,GAAG,EAAE;IAC9B,IAAI,QAAQ,CAAC,qBAAqB,KAAK,GAAG,YAAY,WAAW,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACjF,SAAS,cAAc,IAAI,GAAG,YAAY,IAAI,CAAC;IAC/C,SAAS,cAAc,IAAI,GAAG,YAAY,IAAI,CAAC,EAAE;IACjD,CAAC;IACM,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;IACvC,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACzC,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACpD,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IACnC,gBAAgB,OAAO,IAAI,CAAC;IAC5B,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;IACvB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,GAAG,CAAC,MAAM;IAClB,QAAQ,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;IACxC,QAAQ,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAChC,QAAQ,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,KAAK;IACL,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;IAC3B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IACnF,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,KAAK,CAAC;IACjB;;IChDA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,iBAAiB,CAAC,MAAM,EAAE;IAC1C,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IACnC,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC;IACxB,IAAI,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,IAAI,CAAC;IACpB,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;IACxB,QAAQ,MAAM,WAAW,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACxE,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,OAAO,WAAW,CAAC;IAC3B,KAAK;IACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9D,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE;IAClE,QAAQ,MAAM,OAAO,GAAG,EAAE,CAAC;IAC3B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACjE,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;IACnD,IAAI,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;IACnC,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,IAAI,CAAC;IACpB,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;IAC5C,QAAQ,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;IACzD,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC;IACzB,YAAY,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,QAAQ,IAAI,YAAY,EAAE;IAC1B,YAAY,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,SAAS;IACT,aAAa;IACb,YAAY,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnD,SAAS;IACT,KAAK;IACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAClC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,SAAS;IACT,KAAK;IACL,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IACvC,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACjE,gBAAgB,IAAI,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACnE,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB;;IC/EA;IACA;IACA;IACA;IACA;IACO,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,CAAC;IACtB,CAAC,UAAU,UAAU,EAAE;IACvB,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACtD,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5D,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;IAClD,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;IAClE,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;IAChE,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5D,CAAC,EAAE,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IACpC;IACA;IACA;IACO,MAAM,OAAO,CAAC;IACrB;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,QAAQ,EAAE;IAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,GAAG,EAAE;IAChB,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,GAAG,EAAE;IAC1E,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;IAChC,gBAAgB,GAAG,CAAC,IAAI;IACxB,oBAAoB,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK;IACjD,0BAA0B,UAAU,CAAC,YAAY;IACjD,0BAA0B,UAAU,CAAC,UAAU,CAAC;IAChD,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChD,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL;IACA;IACA;IACA,IAAI,cAAc,CAAC,GAAG,EAAE;IACxB;IACA,QAAQ,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IAChC;IACA,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IAChD,YAAY,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IAChD,YAAY,GAAG,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IACzC,SAAS;IACT;IACA;IACA,QAAQ,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE;IACxC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IACjC,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE;IAC5B,YAAY,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;IAC1B,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;IAC9B,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,GAAG,EAAE;IACxB,QAAQ,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChE,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;IAC/C,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA;IACA;IACO,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,OAAO,EAAE;IACzB,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,CAAC,GAAG,EAAE;IACb,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACrC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;IACpC,gBAAgB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACnF,aAAa;IACb,YAAY,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC5C,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IACvD,gBAAgB,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IACvD;IACA,gBAAgB,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrE;IACA,gBAAgB,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,EAAE;IAC9C,oBAAoB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB;IACA,gBAAgB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtD,aAAa;IACb,SAAS;IACT,aAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE;IAC9C;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACrC,gBAAgB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACpF,aAAa;IACb,iBAAiB;IACjB,gBAAgB,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChE,gBAAgB,IAAI,MAAM,EAAE;IAC5B;IACA,oBAAoB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9C,oBAAoB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC;IACpD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,CAAC,GAAG,EAAE;IACtB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB;IACA,QAAQ,MAAM,CAAC,GAAG;IAClB,YAAY,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC;IACV,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;IAC9C,YAAY,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7D,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IAC9C,YAAY,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IAC9C,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG;IAClE,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChD,YAAY,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC7D,gBAAgB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACvD,aAAa;IACb,YAAY,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;IACvC,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,EAAE,CAAC,EAAE;IACxB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,GAAG,KAAK,CAAC;IAC7B,oBAAoB,MAAM;IAC1B,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;IACpC,oBAAoB,MAAM;IAC1B,aAAa;IACb,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5C,SAAS;IACT,aAAa;IACb,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IACxB,SAAS;IACT;IACA,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,QAAQ,IAAI,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;IACjD,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,EAAE,CAAC,EAAE;IACxB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;IACjD,oBAAoB,EAAE,CAAC,CAAC;IACxB,oBAAoB,MAAM;IAC1B,iBAAiB;IACjB,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;IACpC,oBAAoB,MAAM;IAC1B,aAAa;IACb,YAAY,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,SAAS;IACT;IACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7B,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;IACzD,gBAAgB,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;IACjC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnD,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,KAAK;IACL,IAAI,QAAQ,CAAC,GAAG,EAAE;IAClB,QAAQ,IAAI;IACZ,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,OAAO,KAAK,CAAC;IACzB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;IACzC,QAAQ,QAAQ,IAAI;IACpB,YAAY,KAAK,UAAU,CAAC,OAAO;IACnC,gBAAgB,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC;IACnD,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,OAAO,OAAO,KAAK,SAAS,CAAC;IAC7C,YAAY,KAAK,UAAU,CAAC,aAAa;IACzC,gBAAgB,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC;IAClF,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC;IAClC,YAAY,KAAK,UAAU,CAAC,YAAY;IACxC,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,YAAY,KAAK,UAAU,CAAC,GAAG,CAAC;IAChC,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;IAChC,YAAY,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;IACxD,SAAS;IACT,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,mBAAmB,CAAC;IAC1B,IAAI,WAAW,CAAC,MAAM,EAAE;IACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,OAAO,EAAE;IAC5B,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;IAChE;IACA,YAAY,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,YAAY,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC1C,YAAY,OAAO,MAAM,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,sBAAsB,GAAG;IAC7B,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,KAAK;IACL;;;;;;;;;;IC/RO,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;IAChC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnB,IAAI,OAAO,SAAS,UAAU,GAAG;IACjC,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxB,KAAK,CAAC;IACN;;ICFA;IACA;IACA;IACA;IACA,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,EAAE,CAAC;IACd,IAAI,aAAa,EAAE,CAAC;IACpB,IAAI,UAAU,EAAE,CAAC;IACjB,IAAI,aAAa,EAAE,CAAC;IACpB;IACA,IAAI,WAAW,EAAE,CAAC;IAClB,IAAI,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,MAAM,MAAM,SAAS,OAAO,CAAC;IACpC;IACA;IACA;IACA,IAAI,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;IAC/B,QAAQ,KAAK,EAAE,CAAC;IAChB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B;IACA;IACA;IACA,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC;IACA;IACA;IACA,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACrB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;IAC/B,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAClC,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY;IAChC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,YAAY,GAAG;IACvB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,GAAG;IAChB,QAAQ,IAAI,IAAI,CAAC,IAAI;IACrB,YAAY,OAAO;IACnB,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG;IACpB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,MAAM,GAAG;IACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,SAAS;IAC1B,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC;IACrC,YAAY,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3B,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,WAAW;IAC1C,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE;IAClB,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;IACtB,QAAQ,IAAI,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;IAChD,YAAY,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,4BAA4B,CAAC,CAAC;IAChF,SAAS;IACT,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzB,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,IAAI,EAAE,UAAU,CAAC,KAAK;IAClC,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC;IACV,QAAQ,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IAC5B,QAAQ,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC;IAChE;IACA,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;IACzD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,YAAY,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,YAAY,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3B,SAAS;IACT,QAAQ,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;IAClD,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS;IACpC,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC9C,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/F,QAAQ,IAAI,aAAa,EAAE,CAClB;IACT,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;IACjC,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE;IAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3C,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE;IACnC,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAChC,YAAY,OAAO;IACnB,SAAS;IACT;IACA,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM;IACjD,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7D,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;IAClD,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,iBAAiB;IACjB,aAAa;IACb,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACjE,SAAS,EAAE,OAAO,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK;IACrC;IACA,YAAY,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7C,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,MAAM,EAAE;IACnB,QAAQ,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC9B,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE;IAC5C,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;IAChC,gBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,aAAa,CAAC,CAAC;IACf,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IAC7B,YAAY,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACpD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa;IAC1B,YAAY,OAAO;IACnB,QAAQ,QAAQ,MAAM,CAAC,IAAI;IAC3B,YAAY,KAAK,UAAU,CAAC,OAAO;IACnC,gBAAgB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACpD,oBAAoB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC/C,oBAAoB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACvC,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,KAAK,CAAC,2LAA2L,CAAC,CAAC,CAAC;IAC/P,iBAAiB;IACjB,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC;IAClC,YAAY,KAAK,UAAU,CAAC,YAAY;IACxC,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,GAAG,CAAC;IAChC,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC;IACpC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,aAAa;IACzC,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/B,gBAAgB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D;IACA,gBAAgB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5C,gBAAgB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACxD,gBAAgB,MAAM;IACtB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE;IACpB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,EAAE,EAAE;IAC/B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,SAAS;IACT,KAAK;IACL,IAAI,SAAS,CAAC,IAAI,EAAE;IACpB,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IAC7D,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACzD,YAAY,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;IAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,aAAa;IACb,SAAS;IACT,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,CAAC,EAAE,EAAE;IACZ,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;IACzB,QAAQ,OAAO,UAAU,GAAG,IAAI,EAAE;IAClC;IACA,YAAY,IAAI,IAAI;IACpB,gBAAgB,OAAO;IACvB,YAAY,IAAI,GAAG,IAAI,CAAC;IACxB,YAAY,IAAI,CAAC,MAAM,CAAC;IACxB,gBAAgB,IAAI,EAAE,UAAU,CAAC,GAAG;IACpC,gBAAgB,EAAE,EAAE,EAAE;IACtB,gBAAgB,IAAI,EAAE,IAAI;IAC1B,aAAa,CAAC,CAAC;IACf,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,MAAM,EAAE;IAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,QAAQ,IAAI,UAAU,KAAK,OAAO,GAAG,EAAE;IACvC,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxC,SAES;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,EAAE,EAAE;IAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;IAC5C,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;IACvB;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;IAC5D,YAAY,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAClC,SAAS;IACT,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,GAAG;IACjB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACzD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B;IACA,YAAY,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,QAAQ,EAAE;IACvB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,QAAQ,GAAG;IACnB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACnC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,OAAO,EAAE;IACrB,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACrC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,QAAQ,EAAE;IACpB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,CAAC,QAAQ,EAAE;IACzB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,QAAQ,EAAE;IACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACjC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;IACjD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,gBAAgB,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/C,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IACpC,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,OAAO,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACxC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,aAAa,CAAC,QAAQ,EAAE;IAC5B,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,kBAAkB,CAAC,QAAQ,EAAE;IACjC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,QAAQ,EAAE;IAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;IACzC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC;IACzD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,gBAAgB,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/C,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAC5C,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,OAAO,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAChD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,uBAAuB,CAAC,MAAM,EAAE;IACpC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;IAC7E,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACjE,YAAY,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;IAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,aAAa;IACb,SAAS;IACT,KAAK;IACL;;IC9rBA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,OAAO,CAAC,IAAI,EAAE;IAC9B,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;IAC9B,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;IACjC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;IACzC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;IACrB,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,EAAE,GAAG,SAAS,CAAC;IAChF,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;IACtC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;IAC1C,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;IAClB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;IAC1C,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,MAAM,EAAE;IAChD,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;;IC3DM,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IAC5C,YAAY,IAAI,GAAG,GAAG,CAAC;IACvB,YAAY,GAAG,GAAG,SAAS,CAAC;IAC5B,SAAS;IACT,QAAQ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;IACvD,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,IAAI,QAAQ,CAAC,CAAC;IACzE,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;IAC/D,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC;IACrE,QAAQ,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,mBAAmB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IACvG,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC;IACnC,YAAY,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE;IACzC,YAAY,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE;IAC5C,YAAY,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE;IAC9C,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IAC9C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC;IACvD,QAAQ,IAAI,IAAI,CAAC,YAAY;IAC7B,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK;IACL,IAAI,YAAY,CAAC,CAAC,EAAE;IACpB,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;IAC7B,YAAY,OAAO,IAAI,CAAC,aAAa,CAAC;IACtC,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,oBAAoB,CAAC,CAAC,EAAE;IAC5B,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,iBAAiB,CAAC,CAAC,EAAE;IACzB,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAC3C,QAAQ,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,mBAAmB,CAAC,CAAC,EAAE;IAC3B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC;IAC7C,QAAQ,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjF,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,oBAAoB,CAAC,CAAC,EAAE;IAC5B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,OAAO,CAAC,CAAC,EAAE;IACf,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;IAC7B,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC1B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,oBAAoB,GAAG;IAC3B;IACA,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa;IAC/B,YAAY,IAAI,CAAC,aAAa;IAC9B,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;IACzC;IACA,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,EAAE,EAAE;IACb,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7C,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIM,QAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACrC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC;IACA,QAAQ,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY;IAC9D,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;IACvB,SAAS,CAAC,CAAC;IACX;IACA,QAAQ,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK;IACtD,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,YAAY,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACxC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,YAAY,IAAI,EAAE,EAAE;IACpB,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC;IACxB,aAAa;IACb,iBAAiB;IACjB;IACA,gBAAgB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5C,aAAa;IACb,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;IACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,YAAY,IAAI,OAAO,KAAK,CAAC,EAAE;IAC/B,gBAAgB,cAAc,EAAE,CAAC;IACjC,aAAa;IACb;IACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IAClD,gBAAgB,cAAc,EAAE,CAAC;IACjC,gBAAgB,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B;IACA,gBAAgB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,aAAa,EAAE,OAAO,CAAC,CAAC;IACxB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;IACjD,gBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,CAAC,CAAC;IACf,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb;IACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB;IACA,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC;IACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnQ,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,MAAM,EAAE;IACtB;IACA,QAAQ,QAAQ,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IACtB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,QAAQ,IAAI,CAAC,MAAM,EAAE;IACrB,YAAY,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACpC,SAAS;IACT,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;IAC/B,gBAAgB,OAAO;IACvB,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE;IACpB,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxD,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;IACxD,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAClC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,QAAQ,IAAI,IAAI,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,GAAG;IACjB,QAAQ,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACvD,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,GAAG;IAChB,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;IACpD,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;IACjE,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACjC,YAAY,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACvC,SAAS;IACT,aAAa;IACb,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAClD,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IACtC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IAClD,gBAAgB,IAAI,IAAI,CAAC,aAAa;IACtC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9E;IACA,gBAAgB,IAAI,IAAI,CAAC,aAAa;IACtC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;IACnC,oBAAoB,IAAI,GAAG,EAAE;IAC7B,wBAAwB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnD,wBAAwB,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,wBAAwB,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAClE,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa,EAAE,KAAK,CAAC,CAAC;IACtB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;IACjD,gBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,GAAG;IAClB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9C,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,KAAK;IACL;;IClWA;IACA;IACA;IACA,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,IAAI,GAAG,GAAG,CAAC;IACnB,QAAQ,GAAG,GAAG,SAAS,CAAC;IACxB,KAAK;IACL,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;IACvD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACzB,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7B,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ;IACvC,QAAQ,IAAI,CAAC,sBAAsB,CAAC;IACpC,QAAQ,KAAK,KAAK,IAAI,CAAC,SAAS;IAChC,QAAQ,aAAa,CAAC;IACtB,IAAI,IAAI,EAAE,CAAC;IACX,IAAI,IAAI,aAAa,EAAE;IACvB,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;IACxB,YAAY,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,SAAS;IACT,QAAQ,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACrC,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD;IACA;IACA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;IACtB,IAAI,OAAO;IACX,IAAI,MAAM;IACV,IAAI,EAAE,EAAE,MAAM;IACd,IAAI,OAAO,EAAE,MAAM;IACnB,CAAC,CAAC;;IC1CI,SAAU,aAAa,CAAC,MAAM,EAAA;QAEnC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,UAAS,IAAI,EAAE,OAAO,EAAA;YAE1C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ;gBACzB,IAAI,GAAG,IAAI,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAClE,KAAC,CAAC,CAAC;IACJ;;ICPA,MAAM,OAAO,GAAG,CAAU,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,EAAE,CAAC;IAE1E,eAAe,WAAW,GAAA;QAEhC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAG,EAAA,OAAO,CAAc,YAAA,CAAA,CAAC,CAAC;IACvD,IAAA,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE5C,QAAQ,CAAC,aAAa,CAAC,CAAC;IAExB,IAAA,IAAI,MAAM,GAAG,MAAMC,MAAE,CAAC,OAAO,EAC7B;IACC,QAAA,IAAI,EAAE,OAAO;IACb,QAAA,KAAK,EACL;gBACC,QAAQ,EAAE,aAAa,CAAC,QAAQ;IAChC,SAAA;IACD,KAAA,CAAC,CAAC;QACH,UAAU,CAAC,MAAM,CAAC,CAAC;IAEnB,IAAA,MAAM,CAAC,EAAE,CAAC,SAAS,EAAY,cAAY,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,IAAA,MAAM,CAAC,EAAE,CAAC,YAAY,EAAS,cAAY,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,IAAA,MAAM,CAAC,EAAE,CAAC,eAAe,EAAM,cAAY,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,IAAA,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAI,cAAY,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC;IACxF,IAAA,MAAM,CAAC,EAAE,CAAC,OAAO,EAAc,cAAY,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9E,IAAA,MAAM,CAAC,EAAE,CAAC,WAAW,EAAU,cAAY,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,IAAA,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,cAAY,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1F,IAAA,MAAM,CAAC,EAAE,CAAC,cAAc,EAAO,cAAY,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,IAAA,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAI,cAAY,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC;IACxF,IAAA,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAG,cAAY,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,IAAA,MAAM,CAAC,EAAE,CAAC,MAAM,EAAe,cAAY,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7E,IAAA,MAAM,CAAC,EAAE,CAAC,MAAM,EAAe,cAAY,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;QAE7E,aAAa,CAAC,MAAM,CAAC,CAAC;IACvB;;;;;;;;;iCC1BgB,GAAK,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;kEAAL,GAAK,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IANT,CAAA,IAAA,EAAA,KAAK,GAAG,aAAa,EAAA,GAAA,OAAA,CAAA;KAEhC,WAAW,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCmBR,UAAa,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACb,UAAgC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAJL,GAAA,KAAA,EAAA,EAAA,IAAA,WAAA,GAAI,cAAW,IAAI,EAAA;;;;;;;;;;;;;;;OAC9C,UAA6E,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;2EADlD,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAD5B,EAAA,aAAA,GAAI,QAAK,SAAS,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;OADzB,UAQK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SArBC,IAAI,CAAA;;KAER,OAAO,CAAA,YAAA;;sBAEL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;IAWG,CAAA,MAAA,aAAA,GAAA,MAAA,IAAI,CAAC,mBAAmB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCxBrD,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFCWU,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,CAAA;6CAAc,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;mDAAiB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;OAA7D,UAEQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uHAFO,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,EAAA;;;;;8CAAc,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;oDAAiB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAXhD,CAAA,IAAA,EAAA,IAAI,GAAU,SAAS,EAAA,GAAA,OAAA,CAAA;IACvB,CAAA,IAAA,EAAA,IAAI,GAAW,KAAK,EAAA,GAAA,OAAA,CAAA;IACpB,CAAA,IAAA,EAAA,OAAO,GAAW,KAAK,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCiJH,iBAAe,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARlB,CAAA,IAAA,QAAA,eAAA,GAAO,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;IAChB,CAAA,IAAA,QAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;IAKf,CAAA,IAAA,SAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qGAPgB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;OAL9D,UAeM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAdJ,UAOK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OANH,UAAoC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAGpC,UAAsF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAb,GAAA,eAAA,CAAA,MAAA,UAAA,GAAG,IAAC,QAAQ,CAAA,CAAA;;OACvF,UAA4C,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAC1C,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAE3C,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHH,UAAkE,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAClE,UAAkE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAR,GAAA,MAAA,CAAA,OAAA,WAAA,GAAG,IAAC,GAAG,CAAA;;OACjE,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;wEAZb,GAAe,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;4IAKQ,GAAO,CAAA,CAAA,CAAA,CAAA,EAAA;;;;IAAe,GAAA,IAAA,KAAA,WAAA,CAAA,IAAA,MAAA,CAAA,KAAA,aAAA,GAAG,IAAC,QAAQ,EAAA;IAAZ,IAAA,eAAA,CAAA,MAAA,UAAA,GAAG,IAAC,QAAQ,CAAA,CAAA;;;IACjE,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,eAAA,EAAA,KAAA,QAAA,MAAA,QAAA,eAAA,GAAO,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAChB,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,QAAA,MAAA,QAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;IAIuB,IAAA,MAAA,CAAA,OAAA,WAAA,GAAG,IAAC,GAAG,CAAA;;;IAC7C,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,SAAA,MAAA,SAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DASZ,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;OAA/B,UAAmD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;sFAA1B,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;gBAUkC,eAAa,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAFxD,CAAA,IAAA,QAAA,cAAA,GAAM,IAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;IAThC,CAAA,IAAA,QAAA,cAAA,GAAM,QAAK,SAAS,IAAAf,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;IAWT,IAAA,IAAA,gBAAA,GAAS,QAAK,SAAS;UAAG,SAAS;UAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OARjE,UASM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OANJ,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHH,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OACzC,UAA0C,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;OAC1C,UAAuC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;qEANX,GAAY,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;IAHvC,GAAA,eAAA,GAAM,QAAK,SAAS,EAAA;;;;;;;;;;;;;IASD,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,QAAA,MAAA,QAAA,cAAA,GAAM,IAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;IAErB,GAAA,IAAA,KAAA,iBAAA,CAAA,EAAA,cAAA,CAAA,IAAA,iBAAA,GAAS,QAAK,SAAS;SAAG,SAAS;SAAG,WAAW,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAnCvE,UAwCM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAvCJ,UAAkC,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAClC,UAoCK,CAAA,IAAA,EAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAjKD,IAAI,CAAA;IACJ,CAAA,IAAA,MAAM,EAAE,SAAS,CAAA;IACjB,CAAA,IAAA,mBAAmB,GAAG,KAAK,CAAA;;;IAG3B,CAAA,IAAA,GAAG,KAAK,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAA,CAAA;;SAChC,OAAO,CAAA;WACL,MAAM,GAAA,EAAK,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,CAAA;IACnD,CAAA,IAAA,OAAO,KAAI,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,CAAA;;KAEvC,OAAO,CAAA,YAAA;MACL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;IAGlB,EAAA,IAAA,IAAI,KAAK,SAAS,EAAA;OACpB,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAA,CAAA;;;;sBAG/E,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA,CAAA;;IACvB,EAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAA,CAAA;IAEzB,EAAA,YAAA,CAAA,CAAA,EAAA,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,sBAAsB,EAAA,GAAA,CAAA,CAAA;;;;;IAM/B,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC9G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACH,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;IAEV,GAAA,CAAA,CAAA,KAAK,CAAO,MAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,uCAAuC,EAAA,MAAA,CAAA,CAAA,CAAA;;;;;;;;WAWlE,eAAe,GAAA,YAAA;;;IAGd,EAAA,IAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAO,KAAA,EAAE,IAAK,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,sBAAsB,EAAA;uBACzE,MAAM,CAAC,QAAQ,GAAG,sBAAsB,EAAA,MAAA,CAAA,CAAA;;IAGnC,GAAA,MAAA,IAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAO,KAAA,EAAE,IAAK,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,sBAAsB,EAAA;IAC/E,GAAA,YAAA,CAAA,CAAA,EAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAA,GAAA,CAAA,CAAA;;uBAGxB,MAAM,CAAC,QAAQ,GAAG,EAAE,EAAA,MAAA,CAAA,CAAA;;;YAEnB,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,YAAA,CAAA,EAAA;IACzE,GAAA,MAAM,EAAE,OAAO;OACf,OAAO,EAAA,EACP,cAAc,EAAE,kBAAlB,EAAA;OAEE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;QACpB,UAAU,EAAE,GAAG,CAAC,QAAQ;QACxB,wBAAwB,EAAG,GAAG,CAAC,GAAA;;IAG/B,GAAA,CAAA,CAAA,IAAI,CAAE,QAAQ,IAAA;IACV,GAAA,IAAA,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA,YAAA,CAAA,CAAA,EAC1B,OAAO,CAAC,QAAQ,GAAG,8BAA8B,qBACzC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAC/B,IAAI,CAAC,MAAM,CAAA,CAAA,MAAA,IACD,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA,YAAA,CAAA,CAAA,EAC9B,MAAM,CAAC,QAAQ,GAAM,CAAA,EAAA,GAAG,CAAC,QAAQ,CAAA,yCAAA,CAAA,EAAA,MAAA,CAAA,CAAA,MAAA,YAAA,CAAA,CAAA,EAEpC,MAAM,CAAC,QAAQ,GAAG,sBAAsB,EAAA,MAAA,CAAA,CAAA;IAGzC,GAAA,CAAA,CAAA,KAAK,CAAE,GAAG,IAAA,YAAA,CAAA,CAAA,EAAK,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAA,MAAA,CAAA,CAAA,CAAA;;;;WAM9B,YAAY,GAAA,YAAA;sBAChB,MAAM,CAAC,MAAM,GAAG,EAAE,EAAA,MAAA,CAAA,CAAA;;IACd,EAAA,IAAA,SAAS,KAAK,SAAS,EAAA;uBACzB,MAAM,CAAC,MAAM,GAAG,0BAA0B,EAAA,MAAA,CAAA,CAAA;;;;IAGzC,EAAA,MAAA,IAAI,OAAO,QAAQ,EAAA,CAAA;IACzB,EAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA,CAAA,CAAA;;;MAG/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,CAAA;;YAEV,wBAAwB,GAAG,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAEpG,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAG,MAAM,EACf,IAAI,EAAG,IAAI,EAAA,CAAA,CAAA;IAEN,EAAA,MAAA,kBAAkB,SAAS,wBAAwB,CAAA;;UACrD,kBAAkB,CAAC,EAAE,KAAK,IAAI,EAAA;IACjC,GAAA,mBAAmB,GAAG,IAAI,CAAA;uBAC1B,OAAO,CAAC,MAAM,GAAG,8BAA8B,EAAA,OAAA,CAAA,CAAA;;IAG/C,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAA,MAAA,CAAA,CAAA;;;IAGxC,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC7G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACH,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;IAEb,GAAA,CAAA,CAAA,KAAK,CAAO,MAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,uCAAuC,EAAA,MAAA,CAAA,CAAA,CAAA;;;;;;;;;;IAec,EAAA,GAAG,CAAC,QAAQ,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;IAM3B,EAAA,GAAG,CAAC,GAAG,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;MAiBlC,SAAS,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCtH3C,sBAAoB,CAAA,CAAA;+BAAC,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;OADnC,UAAa,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACb,UAAyC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;mEAAf,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAJR,GAAA,KAAA,EAAA,EAAA,IAAA,WAAA,GAAI,cAAW,KAAK,EAAA;;;;;;;;;;;;;;2EAApB,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAD5B,EAAA,aAAA,GAAI,QAAK,SAAS,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAlCV,SAAS,EAAA,GAAA,OAAA,CAAA;SAChB,IAAI,CAAA;;KAER,OAAO,CAAA,YAAA;IACL,EAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAE,SAAS,CAAA,CAAA;;;sBAEjD,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAyB,sBAAA,EAAA,SAAS,CAChH,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;WAYX,UAAU,GAAA,YAAA;;;;sBAIrB,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAyB,sBAAA,EAAA,SAAS,CAChH,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAIvB,CAAa,UAAU,EAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BChBuB,GAAI,CAAA,CAAA,CAAA,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;IAA1B,GAAA,YAAA,CAAA,GAAA,EAAA,QAAA,iBAAA,GAAU,iBAAK,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;2EAF7B,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,CAAA;;;;OAAf,UAGI,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OADF,UAAmD,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;;;;;;;;;oEAAV,GAAI,CAAA,CAAA,CAAA,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;IAA1B,IAAA,YAAA,CAAA,GAAA,EAAA,QAAA,iBAAA,GAAU,iBAAK,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;mGAF7B,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;gCADV,GAAK,CAAA,CAAA,CAAA,CAAA;;;;oCAAV,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAHoB,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;OAAlC,UAUK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OARH,UAOI,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;+BANK,GAAK,CAAA,CAAA,CAAA,CAAA;;;;mCAAV,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;2CAHoB,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;WAVrB,KAAK,EAAA,GAAA,OAAA,CAAA;WACL,UAAU,EAAA,GAAA,OAAA,CAAA;IACV,CAAA,IAAA,EAAA,IAAI,GAAG,QAAQ,EAAA,GAAA,OAAA,CAAA;;;IAGpB,CAAA,MAAA,QAAQ,GAAG,qBAAqB,EAAA,CAAA;;;;;;;;;;;;;;;;;;mCASD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICsRtD,CAAA,IAAA,OAAA,GAAA,MAAM,CAAC,IAAI,kBAAC,GAAY,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;yCAIpC,GAAY,CAAA,CAAA,CAAA,CAAA;;;;sCAAjB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;mCAND,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;gFAAlB,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;IAEb,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,oBAAA,EAAA,EAAA,OAAA,GAAA,MAAM,CAAC,IAAI,kBAAC,GAAY,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;;;;;;;;;;;wCAIpC,GAAY,CAAA,CAAA,CAAA,CAAA;;;;qCAAjB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAhBD,CAAA,IAAA,OAAA,GAAA,MAAM,CAAC,IAAI,sBAAC,GAAgB,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;6CAIxC,GAAgB,CAAA,CAAA,CAAA,CAAA;;;;sCAArB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;mCALD,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;gFAAlB,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;IACb,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,EAAA,OAAA,GAAA,MAAM,CAAC,IAAI,sBAAC,GAAgB,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;;;;;;;;;;;4CAIxC,GAAgB,CAAA,CAAA,CAAA,CAAA;;;;qCAArB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAlBD,CAAA,IAAA,OAAA,GAAA,MAAM,CAAC,IAAI,mBAAC,GAAa,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;0CAIrC,GAAa,CAAA,CAAA,CAAA,CAAA;;;;sCAAlB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;mCALD,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;gFAAlB,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;IACb,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,EAAA,OAAA,GAAA,MAAM,CAAC,IAAI,mBAAC,GAAa,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;;;;;;;;;;;yCAIrC,GAAa,CAAA,CAAA,CAAA,CAAA;;;;qCAAlB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IApBD,CAAA,IAAA,OAAA,GAAA,MAAM,CAAC,IAAI,cAAC,GAAQ,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;mCAMhC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;oCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;mCAXD,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;gFAAlB,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;IAKb,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,GAAA,MAAM,CAAC,IAAI,cAAC,GAAQ,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;;;;;;;;;;;kCAMhC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;mCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCJ,UAAoD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;IAI0B,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,gBAAgB,GAAA,EAAA,CAAA;;;;IAClE,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;OAD9C,UAA0G,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAC1G,UAAoD,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OACpD,UAAG,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;IAF2E,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,oBAAA,EAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,gBAAgB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAClE,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,oBAAA,EAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAjB9C,UAAwD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;IAIoB,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,cAAc,GAAA,EAAA,CAAA;;;;IAC9D,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;OAD9C,UAAsG,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OACtG,UAAoD,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OACpD,UAAG,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;IAFyE,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,cAAc,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAC9D,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAnB9C,UAAwD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;IAO8B,CAAA,IAAA,OAAA,mBAAA,GAAW,KAAC,gBAAgB,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;OAAhH,UAAsH,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;IAAlC,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,mBAAA,GAAW,KAAC,gBAAgB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAF9B,CAAA,IAAA,OAAA,mBAAA,GAAW,KAAC,cAAc,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;OAA5G,UAAkH,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;IAAhC,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,mBAAA,GAAW,KAAC,cAAc,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IADzG,EAAA,oBAAA,GAAW,CAAC,EAAA,CAAA,CAAA,cAAc,cAAK,GAAI,IAAC,QAAQ,EAAA,OAAAgB,oBAAA,CAAA;IAEvC,EAAA,oBAAA,GAAW,CAAC,EAAA,CAAA,CAAA,gBAAgB,cAAK,GAAI,IAAC,QAAQ,EAAA,OAAA,kBAAA,CAAA;;;;;;;;;;;;;;;;OAGxD,UAAG,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAzBH,UAAuD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;IAMe,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,QAAQ,GAAA,EAAA,CAAA;;;;IAIlD,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJ9C,UAA0F,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAI1F,UAAoD,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OACpD,UAAG,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;IALmE,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAIlD,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoFhD,UAGK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAFH,UAAwB,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;OACxB,UAAsC,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAvCf,GAAmB,CAAA,CAAA,CAAA;;;;;;;;;mCAGrC,GAAoB,CAAA,CAAA,CAAA,6BAAI,GAAoB,CAAA,CAAA,CAAA,CAAC,EAAE,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;OADtD,UAiCK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;2GAnCoB,GAAmB,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAInC,GAAoB,CAAA,CAAA,CAAA,CAAC,MAAM,KAAK,GAAG,EAAA,OAAA,CAAA,CAAA;mCAS9B,GAAoB,CAAA,CAAA,CAAA,CAAC,MAAM,KAAK,GAAG,EAAA,OAAA,CAAA,CAAA;mCAInC,GAAoB,CAAA,CAAA,CAAA,CAAC,MAAM,KAAK,GAAG,EAAA,OAAA,CAAA,CAAA;mCAQnC,GAAoB,CAAA,CAAA,CAAA,CAAC,MAAM,KAAK,GAAG,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAMoC,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACzB,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;IANrE,CAAA,IAAA,QAAA,4BAAA,GAAoB,CAAC,CAAA,CAAA,CAAA,cAAc,cAAK,GAAI,IAAC,QAAQ,IAAAC,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;IAArD,GAAA,6BAAA,GAAoB,CAAC,CAAA,CAAA,CAAA,cAAc,cAAK,GAAI,IAAC,QAAQ,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARrD,EAAA,6BAAA,GAAoB,CAAC,CAAA,CAAA,CAAA,cAAc,cAAK,GAAI,IAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJ1D,UAAsC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IATjC,EAAA,6BAAA,GAAoB,CAAC,CAAA,CAAA,CAAA,cAAc,cAAK,GAAI,IAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAsBO,cAAY,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAN3E,UAA4F,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAF5F,UAA2E,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGL,uBAAqB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAE9B,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBATd,UAAQ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACJ,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAVvE,UAA0C,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG6C,uBAAqB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACrC,wBAAsB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAEhC,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA7EpE,GAAQ,CAAA,CAAA,CAAA;sCAAc,GAAa,CAAA,CAAA,CAAA;;;;;;yCAA6B,GAAS,CAAA,EAAA,CAAA,CAAA,CAAA;;;IACjF,EAAA,sBAAA,GAAa,CAAK,CAAA,CAAA,KAAA,WAAW,iBAAI,GAAQ,QAAK,SAAS,EAAA,OAAAC,mBAAA,CAAA;IAoBlD,EAAA,sBAAA,GAAa,CAAK,CAAA,CAAA,KAAA,YAAY,sBAAI,GAAa,QAAK,SAAS,EAAA,OAAAC,oBAAA,CAAA;IAc7D,EAAA,sBAAA,GAAa,CAAK,CAAA,CAAA,KAAA,iBAAiB,yBAAI,GAAgB,QAAK,SAAS,EAAA,OAAA,kBAAA,CAAA;IAWrE,EAAA,sBAAA,GAAa,CAAK,CAAA,CAAA,KAAA,eAAe,qBAAI,GAAY,QAAK,SAAS,EAAA,OAAA,kBAAA,CAAA;;;;;;;;;IAiBpE,EAAA,4BAAA,GAAmB,QAAK,SAAS,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAvE1C,UAqHK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OA9GH,UA4DK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;OAGL,UA8CK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;yFA5GgC,GAAa,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA7O9C,MAAM,GAAA,EAAI,aAAa,EAAE,EAAE,EAAA,CAAA;SAC3B,GAAG,GAAA,EAAI,cAAc,EAAE,EAAE,EAAA,CAAA;SAEzB,IAAI,CAAA;SACJ,QAAQ,CAAA;SACR,aAAa,CAAA;IACb,CAAA,IAAA,YAAY,EAAE,gBAAgB,CAAA;SAC9B,YAAY,CAAA;SACZ,mBAAmB,CAAA;SACnB,oBAAoB,CAAA;;;IAGpB,CAAA,IAAA,QAAQ,IAAc,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,CAAA,CAAA;;IACnF,CAAA,IAAA,aAAa,GAAW,WAAW,CAAA;;KAGvC,OAAO,CAAA,YAAA;;;;;sBAQL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;MAEtB,QAAQ,EAAA,CAAA;;;;;;;WASJ,QAAQ,GAAA,YAAA;;MAEZ,aAAa,EAAA,CAAA;;MACb,kBAAkB,EAAA,CAAA;MAClB,iBAAiB,EAAA,CAAA;MACjB,qBAAqB,EAAA,CAAA;MACrB,iBAAiB,EAAA,CAAA;;;;WAIb,aAAa,GAAA,YAAA;sBACjB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAClF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;MACpB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA,CAAA;IAC5B,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,QAAQ,CAAA,CAAA,CAAA;;;;;WAKpB,kBAAkB,GAAA,YAAA;sBACtB,aAAa,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACvF,yBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;MACpB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA,CAAA;IAC7B,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,aAAa,CAAA,CAAA,CAAA;;;WAGzB,iBAAiB,GAAA,YAAA;MACrB,YAAY,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACtF,uBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;MACpB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA,CAAA;IAChC,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,YAAY,CAAA,CAAA,CAAA;;;WAGxB,qBAAqB,GAAA,YAAA;sBACzB,gBAAgB,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC1F,wBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;MACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA,CAAA;IACpC,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,gBAAgB,CAAA,CAAA,CAAA;;;WAG5B,iBAAiB,GAAA,YAAA;sBACrB,YAAY,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACtF,uBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;MACpB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAA,CAAA;IAC7C,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,YAAY,CAAA,CAAA,CAAA;IAC5B,EAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAA,CAAA,CAAA;;;;;IAKhC,CAAA,MAAA,mBAAmB,SAAS,SAAS,IAAA;MACzC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAA,CAAA;MAC9C,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;sBACrB,oBAAoB,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAsC,mCAAA,EAAA,SAAS,CAC7I,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;IACpB,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,oBAAoB,CAAA,CAAA,CAAA;;;IAIhC,CAAA,MAAA,iBAAiB,SAAS,SAAS,IAAA;MACvC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAA,CAAA;MACtC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;IACf,EAAA,MAAA,IAAI,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,yBAAA,CAAA,EAAA;IACnF,GAAA,MAAM,EAAG,MAAM;OACf,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC3C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;IACpB,IAAA,kBAAkB,EAAE,SAAS;IAC7B,IAAA,QAAQ,EAAE,GAApB;;IAGO,GAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;IAGlB,EAAA,OAAO,CAAC,GAAG,CAAjB,MAAA,CAAA,MAAA,KAAsB,IAAI,CAAA,CAAA,CAAA;;IACpB,EAAA,mBAAmB,CAAC,SAAS,CAAA,CAAA;;;IAG3B,CAAA,MAAA,SAAS,SAAS,SAAS,IAAA;MAC/B,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAA,CAAA;IACrD,EAAA,YAAA,CAAA,CAAA,EAAA,mBAAmB,GAAG,SAAS,CAAA,CAAA;;;;IAIzB,EAAA,MAAA,mBAAmB,CAAC,SAAS,CAAA,CAAA;;MAEnC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA,CAAA;IACpC,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,oBAAoB,CAAA,CAAA,CAAA;;;IAGhC,CAAA,MAAA,mBAAmB,SAAS,cAAc,IAAA;MAC9C,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;YAE7B,IAAI,GAAA,MAAS,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,0BAAA,EAA6B,cAAc,CAAA,OAAA,CAAA,EAAA,EAC9H,MAAM,EAAE,OAAhB,EAAA,CAAA,CACO,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;MAEpB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAA,CAAA;;IACnD,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,IAAI,CAAA,CAAA,CAAA;IACd,EAAA,MAAA,mBAAmB,CAAC,mBAAmB,CAAA,CAAA;;;;;;IAMzC,CAAA,MAAA,oBAAoB,SAAS,cAAc,IAAA;MAC/C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA,CAAA;YAC9B,IAAI,GAAA,MAAS,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,0BAAA,EAA6B,cAAc,CAAA,QAAA,CAAA,EAAA,EAC9H,MAAM,EAAE,OAAhB,EAAA,CAAA,CACO,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;MAEpB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAA,CAAA;;IACnD,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,IAAI,CAAA,CAAA,CAAA;IACd,EAAA,MAAA,mBAAmB,CAAC,mBAAmB,CAAA,CAAA;;;IAGzC,CAAA,MAAA,QAAQ,SAAS,cAAc,IAAA;MACnC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA,CAAA;MACZ,MAAS,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,0BAAA,EAA6B,cAAc,CAAA,CAAA,EAAA,EAC9H,MAAM,EAAE,QAAhB,EAAA,CAAA,CACO,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,EAAA;;;;IAId,EAAA,MAAA,mBAAmB,CAAC,mBAAmB,CAAA,CAAA;;UACzC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAA,CAAE,MAAM,KAAK,CAAC,EAAA,YAAA,CAAA,CAAA,EAChD,oBAAoB,GAAG,SAAS,CAAA,CAAA;;;;;;IAM9B,CAAA,MAAA,mBAAmB,SAAS,SAAS,IAAA;MACzC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAA,CAAA;MACrD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;IAEjB,EAA0B,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,yBAAA,CAAA,EAAA;IAC9F,GAAA,MAAM,EAAG,MAAM;OACf,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC3C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;IACpB,IAAA,kBAAkB,EAAE,SAAS;IAC7B,IAAA,QAAQ,EAAE,GAApB;;IAGO,GAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,EAAA;;YACd,iBAAiB,EAAA,CAAA;YACjB,aAAa,EAAA,CAAA;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,mBAAmB,GAAG,SAAS,CAAA,CAAA;IAC/B,EAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,SAAS,CAAA,CAAA;;;;;;IAM5B,CAAA,MAAA,YAAY,SAAS,cAAc,IAAA;MACvC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAA,CAAA;MACnD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA,CAAA;YACpB,IAAI,GAAA,MAAS,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,0BAAA,EAA6B,cAAc,CAAA,MAAA,CAAA,EAAA,EAAW,MAAM,EAAE,OAAO,EAAA,CAAA,CACzJ,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;MACpB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAA,CAAA;IACrC,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,IAAI,CAAA,CAAA,CAAA;YACd,iBAAiB,EAAA,CAAA;YACjB,aAAa,EAAA,CAAA;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,mBAAmB,GAAG,SAAS,CAAA,CAAA;IAC/B,EAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,SAAS,CAAA,CAAA;;;;;;IAM5B,CAAA,MAAA,YAAY,SAAS,cAAc,IAAA;;IAEjC,EAAA,MAAA,QAAQ,CAAC,cAAc,CAAA,CAAA;;;IAGzB,CAAA,MAAA,SAAS,SAAS,CAAC,IAAA;sBACvB,aAAa,GAAG,CAAC,CAAC,MAAM,CAAA,CAAA;;IACpB,EAAA,IAAA,aAAa,KAAK,WAAW,EAAA;aACzB,aAAa,EAAA,CAAA;IACV,GAAA,MAAA,IAAA,aAAa,KAAK,YAAY,EAAA;aACjC,kBAAkB,EAAA,CAAA;IACf,GAAA,MAAA,IAAA,aAAa,KAAK,iBAAiB,EAAA;aACtC,qBAAqB,EAAA,CAAA;IAClB,GAAA,MAAA,IAAA,aAAa,KAAK,eAAe,EAAA;aACpC,iBAAiB,EAAA,CAAA;OACvB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA,CAAA;IAC7B,GAAA,OAAO,CAAC,GAAG,CAAjB,MAAA,CAAA,MAAA,KAAsB,YAAY,CAAA,CAAA,CAAA;;;;;;;;;;oCA8BgB,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAA,CAAA;4CAetB,SAAS,CAAC,WAAW,CAAC,cAAc,CAAA,CAAA;4CAEpC,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAA,CAAA;sCAWxC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAA,CAAA;sCAY9B,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAA,CAAA;mCAoB3B,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;mCAC5D,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;mCAE9C,YAAY,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;mCAGpC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;mCAChC,YAAY,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;oCAMlC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;oCAE7C,YAAY,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;oCAGlC,YAAY,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;IAIvB,CAAA,MAAA,gBAAA,GAAA,MAAA,iBAAiB,CAAC,mBAAmB,CAAA,CAAA;IACtD,CAAA,MAAA,gBAAA,GAAA,MAAA,mBAAmB,CAAC,mBAAmB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC/UzE;IACO,MAAM,MAAM,GAAG,UAAU,CAAC;AACjC;IACO,MAAM,aAAa,GAAG;IAC7B,EAAE,GAAG,EAAE,cAAc;IACrB,EAAE,WAAW,EAAE,eAAe;IAC9B,EAAE,UAAU,EAAE,cAAc;IAC5B,EAAE,GAAG,EAAE,QAAQ;IACf,CAAC,CAAC;AACF;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;;;;;;;;;;;;;;wBCtCkB,aAAa,EAAA,MAAA,EAAA;;;;;;;;;;;;;;;;;;OAD/B,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC0FG,GAAA,QAAA,CAAA,QAAA,EAAA,OAAA,EAAA,MAAM,CAAC,UAAU,CAAA,CAAA;IAChB,GAAA,QAAA,CAAA,QAAA,EAAA,QAAA,EAAA,MAAM,CAAC,WAAW,CAAA,CAAA;;;;;;;;OAH3B,UAIS,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAnGJ,MAAM,CAAA;;;IAEL,CAAA,IAAA,MAAM,GAAG,KAAK,CAAA;;;;;IAIZ,CAAA,MAAA,GAAG,OAAO,KAAK,EAAA,CAAA;;KACrB,GAAG,CAAC,GAAG,GAAG,qBAAqB,CAAA;;IAC/B,CAAA,GAAG,CAAC,MAAM,GAAA,MAAA;IACR,EAAA,MAAM,GAAG,IAAI,CAAA;;;;;KAef,OAAO,CAAA,MAAA;;IAID,EAAA,MAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAA,CAAA;;;IAEhC,EAAA,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAA;;IAC7B,EAAA,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAA;;;;;;;IAU3B,EAAA,IAAA,OAAO,GAAI,CAAA,MAAM,CAAC,MAAM,GAAI,GAAG,CAAC,MAAM,GAAG,UAAU,IAAI,YAAY,GAAG,CAAC,KAAO,YAAY,CAAA;;;;;;UAiB1F,MAAM,GAAA,EAAK,OAAO,GAAG,GAAG,CAAA,CAAA;;UACxB,MAAM,GAAA,EAAK,OAAO,GAAG,GAAG,CAAA,CAAA;IACxB,EAAA,IAAA,CAAC,GAAG,MAAM,CAAA;IACV,EAAA,IAAA,CAAC,GAAG,MAAM,CAAA;UAEV,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAA,CAAA;;;IAE/B,EAAA,SAAA,IAAI,CAAC,CAAC,EAAA;;IAEX,GAAA,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAA,CAAA;;;OAE/C,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAA,CAAA;;;;;;;;;;IAUzB,GAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAA,EAAA;IACd,IAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAA,EAAA;;SAEvB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAI,CAAC,GAAG,OAAO,EAAG,CAAC,GAAI,CAAC,GAAG,OAAO,EAAG,GAAG,CAAC,KAAK,GAAG,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,UAAU,CAAA,CAAA;;;;;;IAO/G,GAAA,oBAAoB,CAAC,KAAK,CAAA,CAAA;;;;;;;;;;;;OAOjB,MAAM,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;KAlFb,UAAU,GAAG,EAAE,CAAA;KACf,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAA,CAAA;KAClD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCoChD,UAAgC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;qDAAjB,GAAK,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHpB,UAAuD,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OACvD,UAAkC,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;8CAAnB,GAAM,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAFlB,GAAI,CAAA,CAAA,CAAA,aAAI,GAAI,CAAA,CAAA,CAAA,CAAC,QAAQ,EAAA,OAAAnB,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJ9B,UAeQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;OAdN,UAAmB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAQK,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;;;OACL,UAGI,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;OAFF,UAAoB,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA;;OACpB,UAAqB,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAxDnB,IAAI,CAAA;;KAET,OAAO,CAAA,YAAA;sBACJ,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,IAAI,IAAK,IAAI,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;MAIzB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA,CAAA;;MACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,CAAA;;;;;;;;;;UAUd,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,EAAA;OACpD,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAA,CAAA;;;;WAMlF,KAAK,GAAA,YAAA;IACT,EAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,YAAA,CAAA,CAAA;MACrF,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;;;;;WAK/B,MAAM,GAAA,YAAA;IACN,EAAA,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CACpE,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAE,MAAM,EAAA,CAAA,CAAA;IAElB,EAAA,YAAA,CAAA,CAAA,EAAA,IAAI,GAAG,SAAS,CAAA,CAAA;;;;;;;;;IAWS,CAAA,MAAA,aAAA,GAAA,MAAA,IAAI,CAAC,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCWxC,UAA6B,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAPxB,GAAS,CAAA,CAAA,CAAA,IAAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;iEALJ,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;;;;;;;;;;;OAAnB,UAA+F,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;OAC/F,UAGM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAFJ,UAA0E,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;yCAA7C,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA;;OACnC,UAAkC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;mEAFJ,GAAU,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;4FADhC,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA;;;;8DAEY,GAAM,CAAA,CAAA,CAAA,EAAA;0CAAN,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA;;;yBAGhC,GAAS,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAGT,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;OADZ,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;kEADF,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAXd,UAAoB,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCADd,GAAc,CAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;OAHxB,UAqBM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApBJ,UAAmB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAA8B,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAzC1B,SAAS,CAAA;IACT,CAAA,IAAA,MAAM,GAAG,EAAE,CAAA;IACX,CAAA,IAAA,SAAS,GAAG,EAAE,CAAA;;WACZ,cAAc,GAAA,CAAA,YAAA;IACZ,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,+BAExE,MAAM,EAAE,MAAM,EAEf,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACF,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,GAAG,CAAA,CAAA;;;;WAIb,UAAU,GAAA,YAAA;IACR,EAAA,MAAA,QAAQ,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,sBAAA,CAAA,EAAA;IAEvF,GAAA,MAAM,EAAG,MAAM;OACf,OAAO,EAAA,EACL,cAAc,EAAE,kBAAkB,EAAA;IAEpC,GAAA,IAAI,EAAG,IAAI,CAAC,SAAS,CACnB,EAAA,WAAW,EAAG,MAAM,EAAA,CAAA;;;UAGtB,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA;IACzB,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,EAAE,CAAA,CAAA;uBACX,SAAS,GAAA,CAAA,UAAA,CAAA,CAAA,CAAA;;;UAEP,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA;IACzB,GAAA,IAAI,CAAC,UAAU,CAAA,CAAA;OACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA,CAAA;;;;;;;;;;;MAgBH,MAAM,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OClDzC,UAGK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAFH,UAAyC,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;OACzC,UAAwD,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA9B,CAAA,MAAA,aAAA,GAAA,MAAA,OAAO,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;ICuDvC,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrB,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3B;;ICbA,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;IACrG,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IAC1C,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;IACxE,IAAI,MAAM,EAAE,GAAG,cAAc,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO;IACX,QAAQ,KAAK;IACb,QAAQ,QAAQ;IAChB,QAAQ,MAAM;IACd,QAAQ,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;AACxB,cAAc,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrE,YAAY,EAAE,cAAc,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,KAAK,CAAC;IACN;;IC/DO,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC;IACnC;IAEO,MAAM,CAAC,GAAG,WAAW,CAAC;IACtB,MAAM,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,EAAE,GAAC,CAAC,CAAC;IAChB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAC,IAAI,CAAC,CAAC;IAIrD,MAAM,eAAe,GAAG,IAAI,CAAC;IAGpC;IACO,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IAIlD;;ICzBO,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC;IAE1C;IACO,MAAM,qBAAqB,GAAG,EAAE,CAAC;IAEjC,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAC9B,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAE9B,MAAM,cAAc,GAAG,kBAAkB,GAAC,IAAI,CAAC;IAE/C,MAAM,iBAAiB,GAAG,GAAG,CAAC;;ICfrC,IAAY,UAuBX,CAAA;IAvBD,CAAA,UAAY,UAAU,EAAA;;IAErB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;IACd,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;IACnB,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;;IAGL,IAAA,UAAA,CAAA,UAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAqB,CAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;;IAGX,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,IAAA,UAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;IACjB,IAAA,UAAA,CAAA,UAAA,CAAA,sBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,sBAAoB,CAAA;IACpB,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IAEZ,CAAC,EAvBW,UAAU,KAAV,UAAU,GAuBrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,SAIX,CAAA;IAJD,CAAA,UAAY,SAAS,EAAA;IACpB,IAAA,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,IAAA,SAAA,CAAA,SAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM,CAAA;IACN,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACL,CAAC,EAJW,SAAS,KAAT,SAAS,GAIpB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,UAIX,CAAA;IAJD,CAAA,UAAY,UAAU,EAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACN,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,UAGX,CAAA;IAHD,CAAA,UAAY,UAAU,EAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACV,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,YAKX,CAAA;IALD,CAAA,UAAY,YAAY,EAAA;;IAEvB,IAAA,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAc,CAAA;IACd,IAAA,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,YAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAoB,CAAA;IACrB,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA;;IC3CM,IAAIoB,MAAc,CAAC;IACnB,IAAI,EAAwB,CAAC;IAC7B,IAAI,YAAY,GAAoBC,YAAe,CAAC,QAAQ,CAAC;IAE9D,SAAU,OAAO,CAAC,KAAe,EAAA;QACtCD,MAAI,GAAG,KAAK,CAAC;IACd,CAAC;IAEK,SAAU,KAAK,CAAC,KAA2B,EAAA;QAChD,EAAE,GAAG,KAAK,CAAC;IACZ,CAAC;IAEK,SAAU,eAAe,CAAC,KAAsB,EAAA;QACrD,YAAY,GAAG,KAAK,CAAC;IACtB,CAAC;IAEM,IAAI,aAAyB,CAAC;IAE/B,SAAU,gBAAgB,CAAC,KAAiB,EAAA;QACjD,aAAa,GAAG,KAAK,CAAC;IACvB;;IC+DA;UACa,WAAW,CAAA;IAEvB,IAAA,WAAA,CAAY,OAAsB,CAAC,EAAA;IAClC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACD,CAAA;IAEK,MAAO,cAAe,SAAQ,WAAW,CAAA;IAE9C,IAAA,WAAA,CAAY,IAAmB,EAAA;IAC9B,QAAA,KAAK,CAACE,UAAa,CAAC,cAAc,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACD,CAAA;IAEK,MAAO,oBAAqB,SAAQ,cAAc,CAAA;QAQvD,WAAY,CAAA,YAA6B,EAAE,KAAa,EAAE,QAAgB,EAAE,YAAA,GAAwB,KAAK,EAAE,iBAA0B,EAAE,eAA0B,EAAA;IAChK,QAAA,KAAK,CAACC,UAAa,CAAC,MAAM,CAAC,CAAC;IAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjC,QAAA,IAAI,eAAe,EAAE;IACpB,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACvC,SAAA;IACD,QAAA,IAAI,iBAAiB,EAAE;IACtB,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC3C,SAAA;SACD;IACD,CAAA;IAEK,MAAO,uBAAwB,SAAQ,cAAc,CAAA;IAE1D,IAAA,WAAA,CAAY,aAAqB,EAAA;IAChC,QAAA,KAAK,CAACA,UAAa,CAAC,SAAS,CAAC,CAAC;IAC/B,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACnC;IACD,CAAA;IAEK,MAAO,UAAW,SAAQ,WAAW,CAAA;QAG1C,WAAY,CAAA,KAAA,GAAsBC,SAAY,CAAC,OAAO,EAAE,KAAa,CAAC,EAAA;IACrE,QAAA,KAAK,CAACF,UAAa,CAAC,WAAW,CAAC,CAAC;IACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SACb;IACD;;IC1ID;;IAEE;IACI,SAAU,KAAK,CAAC,OAAe,EAAA;IAEpC,IAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3BF,MAAI,CAAC,KAAK,EAAE,CAAC;IACb,IAAA,MAAM,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACjC,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACK,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACtC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,WAAW,GAAA;QAE1B,MAAM,IAAI,GAAG,cAAc,CAAC;IAC5B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACtC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,mBAAmB,GAAA;QAElC,MAAM,IAAI,GAAG,eAAe,CAAC;IAC7B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,UAAU,GAAA;QAEzB,MAAM,IAAI,GAAG,aAAa,CAAC;IAC3B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAElB,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;IAC5B,QAAA,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC9B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAGD,CAAG,GAAC,KAAK,CAAC;IAC1B,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;SACxB,EAAE,IAAI,CAAC,CAAC;IACV,CAAC;IAGD;;IAEE;aACc,GAAG,GAAA;IAElB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACA,CAAG,GAAC,KAAK,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACxC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IACvB,CAAC;aAEe,IAAI,GAAA;IAEnB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,KAAK,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACxC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;IACxB,CAAC;IAEK,SAAU,OAAO,CAAC,UAAyB,EAAA;IAEhD,IAAA,IAAI,UAAU,KAAKC,UAAa,CAAC,IAAI,EAAE;IACtC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACF,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,KAAA;IACI,SAAA;IACJ,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,KAAA;QACD,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC;SAC9B,EAAE,IAAI,CAAC,CAAC;QACT,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC;SAChC,EAAE,IAAI,CAAC,CAAC;IACV;;ICxFA;IACO,IAAI,QAAiB,CAAC;IACtB,MAAM,YAAY,GAAuB,EAAE,CAAC;IAC5C,IAAI,WAA6B,CAAC;IAEnC,SAAU,SAAS,CAAC,KAAa,EAAA;IAEtC,IAAA,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,WAAW,GAAG,IAAI,CAAC;QAEnB,IAAI,KAAK,KAAK,IAAI,EAAE;YACnB,QAAQ,GAAG,KAAK,CAAC;IACjB,KAAA;IACI,SAAA;YACJ,QAAQ,GAAG,IAAI,CAAC;IAChB,QAAA,OAAO;IACP;;;;;IAKE;IACF,KAAA;IAED,IAAA,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,GAAC,CAAC,GAAC,MAAM,CAAC,CAAC,CAAC;IAC/H,IAAA,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,GAAC,CAAC,GAAC,MAAM,CAAC,CAAC,CAAC;IAC/H,IAAA,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;IAC9B,QAAA,KAAK,CAAC,MAAM,GAAGE,iBAAmB,CAAC;IACnC,QAAA,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,KAAC,CAAC,CAAC;QAEH,WAAW,GAAG,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,uBAAuB,CAAC,CAAC;IAC1H,IAAA,WAAW,CAAC,MAAM,GAAGA,iBAAmB,CAAC;IACzC,IAAA,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC9B;;aClCgB,MAAM,CAAC,MAAc,CAAC,EAAE,MAAc,CAAC,EAAA;IACtD,IAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAC1C;;ICFM,SAAU,SAAS,CAAC,KAAa,EAAE,IAAY,EAAE,QAAiC,EAAE,WAAwB,EAAA;QAEjH,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,IAAA,IAAI,WAAW,EAAE;IAChB,QAAA,UAAU,CAAC,IAAI,CAAE,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAE,CAAC;IACzD,KAAA;QAED,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,OAAO,KAAK,GAAG,CAAC,EAChB;YACC,UAAU,CAAC,IAAI,CAAE,MAAM,CAAC,UAAU,CAAC,CAAC,KAAa,KAAI;IACpD,YAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBACjC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjB,SAAC,EAAE,YAAY,EAAE,KAAK,CAAC,CACtB,CAAC;YACF,KAAK,IAAI,IAAI,CAAC;YACd,YAAY,IAAI,IAAI,CAAC;IACrB,KAAA;IAED,IAAA,OAAO,UAAU,CAAC;IACnB;;UCvBa,MAAM,CAAA;IAGlB,IAAA,WAAA,CAAY,CAAY,GAAA,CAAC,EAAE,CAAA,GAAY,CAAC,EAAA;IACvC,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACX;QACD,MAAM,CAAC,CAAS,EAAE,CAAS,EAAA;IAC1B,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACX;QACD,UAAU,GAAA;IACT,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,QAAA,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,GAAC,mBAAmB,CAAC,CAAC;SAC1E;IACD,CAAA;IAEK,MAAO,aAAc,SAAQ,MAAM,CAAA;IAGxC,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;IAuBE;;IClCK,MAAM,SAAS,GAAG;IACxB,IAAA,YAAY,EAAE,KAAK;IACnB,IAAA,UAAU,EAAE,KAAK;IACjB,IAAA,YAAY,EAAE,KAAK;KACnB,CAAA;aAEe,cAAc,GAAA;IAC7B,IAAA,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;IAC/B,IAAA,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;IAC7B,IAAA,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,MAAM,UAAU,CAAA;IAAhB,IAAA,WAAA,GAAA;YACC,IAAE,CAAA,EAAA,GAAG,EAAE,CAAC;SAKR;IAAA,CAAA;IAED,MAAM,mBAAmB,CAAA;IAKxB,CAAA;IAED,MAAM,KAAK,GAAG,OAAO,GAAG,eAAwB,GAAG,GAAG,GAAG,MAAwB,GAAG,OAAO,CAAC;IACrF,IAAI,MAAiB,CAAC;IACtB,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACpC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAG7C,SAAA,aAAa,CAAC,OAAwB,EAAE,KAAa,EAAE,QAAgB,EAAE,YAAY,GAAG,KAAK,EAAE,iBAA0B,EAAE,eAA0B,EAAA;QAEpK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtC,IAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,OAAO,GAAG,YAAY,GAAG,KAAK,GAAG,eAAe,GAAG,QAAQ,GAAG,oBAAoB,GAAI,YAAY;cAC9I,iBAAiB,GAAG,iBAAiB,CAAC,CAAA;QACzC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;IACzC,QAAA,IAAI,YAAY,EAAE;gBACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIC,oBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAE,CAAC,CAAC;IACvI,SAAA;IACI,aAAA;gBACJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIA,oBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAE,CAAC,CAAC;IACrF,SAAA;IACF,KAAC,CAAC,CAAC;;IAEH,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACtD,CAAC;IAMD,SAAS,aAAa,CAAkB,KAAmB,EAAA;QAC1D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,KAAKP,UAAa,CAAC,KAAK,EAAE;IACtC,QAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,QAAAQ,KAAS,CAAE,IAAsB,CAAC,OAAO,CAAC,CAAC;IAC3C,KAAA;IACF,CAAC;IAED,SAAS,gBAAgB,CAAkB,KAAmB,EAAA;QAE7D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKR,UAAa,CAAC,QAAQ;IAC1B,YAAA,UAAU,CAAC,EAAE,GAAsB,IAAK,CAAC,EAAE,CAAC;gBAC5C,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,qBAAqB;gBACvCS,WAAe,EAAE,CAAC;gBAClB,MAAM;IACP,QAAA,KAAKT,UAAa,CAAC,mBAAmB;IACrC,YAAA,UAAU,CAAC,IAAI,GAAiC,IAAK,CAAC,IAAI,CAAC;gBAC3D,IAAI,UAAU,CAAC,IAAI,KAAKK,UAAa,CAAC,IAAI,EAC1C;IACC,gBAAA,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC;IAClC,gBAAA,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC;IACrC,aAAA;qBACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAChD;IACC,gBAAA,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC;IACnC,gBAAA,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC;IACpC,aAAA;gBACD,UAAU,CAAC,eAAe,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrG,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIK,WAAc,CAACV,UAAa,CAAC,iBAAiB,CAAC,CAAE,CAAC,CAAC;gBACnFW,mBAAuB,EAAE,CAAC;gBAC1B,MAAM;IACP,QAAA,KAAKX,UAAa,CAAC,UAAU;IAC5B,YAAA,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9B,YAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACxD,YAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,YAAA,aAAa,EAAE,CAAC;gBAChB,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,UAAU;IAC5B,YAAA,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9B,YAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBACxDY,UAAc,EAAE,CAAC;gBACjB,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,cAAc,CAAkB,KAAmB,EAAA;QAE3D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKZ,UAAa,CAAC,UAAU;;gBAE5B,UAAU,CAAC,IAA0B,CAAC,CAAC;gBACvC,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,WAAW;gBAC7B,WAAW,CAAC,IAA2B,CAAC,CAAC;gBACzC,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,QAAQ;gBAC1B,QAAQ,CAAC,IAAwB,CAAC,CAAC;gBACnC,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,UAAU,CAAC,IAAwB,EAAA;IAE3C,IAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1B,IAAA,IAAI,YAAY,GAAGD,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,QAAA,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;IACjC,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,KAAC,CAAC,CAAC;IACH;;;;;IAKM;QAEN,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1F,IAAI,UAAU,CAAC,IAAI,KAAKM,UAAa,CAAC,IAAI,EAAE;YAC3C,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACzE,KAAA;aACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAAE;YACjD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1E,KAAA;;IAGD,IAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,IAAI,EAAE;IAC3C,QAAA,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjF,KAAA;aACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAAE;IACjD,QAAA,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChF,KAAA;IAED,IAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,MAAM,CACnC,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACxD,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACxD,CAAC;QAEF,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;IACpF,QAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAC/D,KAAA;;IAGD,IAAA,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;IAG9B,IAAA,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC;IAC7C,WAAA,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,EACjD;YACC,OAAO,CAAC,GAAG,CACV,CAAA;uBACoB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;AACjB,qBAAA,EAAA,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AACvB,qBAAA,EAAA,aAAa,CAAC,CAAC,CAAE,CAAA,CACpC,CAAC;IACH,KAAA;IACF,CAAC;IAED,SAAS,WAAW,CAAC,IAAyB,EAAA;;QAG7C,IAAI,CAAC,QAAQ,EACb;IACC,QAAA,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;gBACpF,WAAW,CAAC,IAAI,EAAE,CAAC;IACnB,SAAA;IACI,aAAA,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;gBACxF,WAAW,CAAC,IAAI,EAAE,CAAC;IACnB,SAAA;IACD,KAAA;QACD,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,SAAS,QAAQ,CAAC,IAAsB,EAAA;IAEvC,IAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,EAAE;YACpCQ,GAAO,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,OAAO,EAAE;IACjB,YAAAC,OAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,SAAA;IACD,KAAA;IACI,SAAA;YACJC,IAAQ,EAAE,CAAC;IACX,KAAA;IACF,CAAC;IAED;IAEM,SAAU,sBAAsB,CAAC,aAAqB,EAAA;QAE3D,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;IACzC,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIC,uBAA0B,CAAC,aAAa,CAAC,CAAE,CAAC,CAAC;IAC9E,KAAC,CAAC,CAAC;;IAEH,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;QAE9D,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpG,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAExG,CAAC;IAEK,SAAU,yBAAyB,CAAkB,KAAmB,EAAA;QAE7E,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,KAAKhB,UAAa,CAAC,UAAU,EAC1C;IACC,QAAA,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9B,QAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IACjE,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIU,WAAc,CAACV,UAAa,CAAC,oBAAoB,CAAC,CAAE,CAAC,CAAC;IACtF,QAAA,aAAa,EAAE,CAAC;IAChB,KAAA;IACF,CAAC;IAED,SAAS,uBAAuB,CAAkB,KAAmB,EAAA;QAEpE,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKA,UAAa,CAAC,UAAU;gBAC5B,mBAAmB,CAAC,IAA0B,CAAC,CAAC;gBAChD,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,WAAW;gBAC7B,oBAAoB,CAAC,IAA2B,CAAC,CAAC;gBAClD,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,QAAQ;gBAC1B,iBAAiB,CAAyB,CAAC,CAAC;gBAC5C,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,mBAAmB,CAAC,IAAwB,EAAA;IAEpD,IAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEnC,IAAA,IAAI,YAAY,GAAGD,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,QAAA,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;IACjC,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,KAAC,CAAC,CAAC;;IAGH,IAAA,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,EACpD;IACC,QAAA,IAAI,OAAsB,CAAC;IAC3B,QAAA,IAAI,MAAM,KAAK,EAAE,CAAC,UAAU,EAAE;IAC7B,YAAA,OAAO,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;IAChD,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;IACjD,SAAA;IAED,QAAA,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,QAAA,IAAI,MAAM,KAAK,EAAE,CAAC,UAAU,EAAE;IAC7B,YAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChD,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjD,SAAA;YAED,MAAM,CAAC,GAAG,GAAG,IAAI,MAAM,CACtB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EACxB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CACxB,CAAC;YAEF,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBAC1D,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IACrC,SAAA;IACD,KAAA;IACF,CAAC;IAED,SAAS,oBAAoB,CAAC,IAAyB,EAAA;IAEtD,IAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAsB,EAAA;IAEhD,IAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,IAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;IAChB;;UCvUa,YAAY,CAAA;QAIxB,WAAY,CAAA,UAAyB,EAAE,SAAiB,EAAA;IACvD,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAC9B,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACxB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC3B;IACD;;ICLM,IAAI,WAAW,GAAG,KAAK,CAAC;IAI/B,IAAIkB,YAAkB,CAAC;IAEvB,MAAM,UAAU,GAAkB,IAAIC,UAAa,EAAE,CAAC;IACtD,MAAM,eAAe,GAAmB,EAAE,CAAC;IAE3C;IACA;;;IAGI;aAEY,WAAW,GAAA;IAE1B;;IAEiD;IAEjD,IAAAD,YAAU,GAAGE,cAAgB,CAAC;;IAG9B,IAAA,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,UAAU,CAAC,KAAK,GAAGjB,SAAY,CAAC,OAAO,CAAC;IAExC,IAAA,MAAM,IAAI,GAAGJ,MAAI,CAAC,IAAI,CAAC;IACvB,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EACrB;YACC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAC3B;gBACC,WAAW,GAAG,CAAC,WAAW,CAAC;IAC3B,YAAAA,MAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpB,SAAA;IACD,QAAA,eAAe,CAACmB,YAAU,EAAE,IAAI,CAAC,CAAC;IAClC,KAAA;IAED,IAAA,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;;QAED,eAAe,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,UAAU,EAAEA,YAAU,CAAC,CAAC,CAAC;;QAG/D,IAAI,UAAU,CAAC,KAAK,KAAKf,SAAY,CAAC,OAAO,EAAE;;;IAG9C,QAAA,oBAAoB,CAACe,YAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,KAAA;IACF,CAAC;IAED,SAAS,eAAe,CAAC,KAAa,EAAE,IAAc,EAAA;QAErD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAC5E;YACC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC/E,UAAU,CAAC,KAAK,GAAGf,SAAY,CAAC,EAAE,CAAC;IACnC,SAAA;IACD,KAAA;aACI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;YACpF,UAAU,CAAC,KAAK,GAAGA,SAAY,CAAC,IAAI,CAAC;IACrC,KAAA;IACF,CAAC;IAOD,SAAS,oBAAoB,CAAC,KAAa,EAAE,KAAmB,EAAA;;IAG/D,IAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAA,IAAI,KAAK,KAAKA,SAAY,CAAC,EAAE,EAAE;IAC9B,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClB,KAAA;IACI,SAAA,IAAI,KAAK,KAAKA,SAAY,CAAC,IAAI,EAAE;IACrC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,KAAA;IACD,IAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEK,SAAU,WAAW,CAAC,WAAmB,EAAA;;QAG9C,IAAI,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,KAAmB,KAAI;IACzD,QAAA,IAAI,KAAK,CAAC,EAAE,KAAK,WAAW,EAAE;IAC7B,YAAA,OAAO,IAAI,CAAC;IACZ,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;IACd,KAAC,CAAC,CAAC;;QAGH,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC;;IAG/B,IAAA,eAAe,CAAC,OAAO,CAAC,CAAC,KAAmB,KAAI;YAC/C,IAAI,KAAK,CAAC,KAAK,KAAKA,SAAY,CAAC,OAAO,EAAE;gBACzC,oBAAoB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,SAAA;IACF,KAAC,CAAC,CAAC;IACJ;;ICzGgB,SAAA,cAAc,CAAC,KAAa,EAAE,EAAkB,EAAA;IAE/D,IAAA,MAAM,OAAO,GAAoB,EAAE,CAAC,OAAO,CAAC;IAC5C,IAAA,MAAM,UAAU,GAAoB,EAAE,CAAC,UAAU,CAAC;IAClD,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAIkB,gBAAkB,EAAE;IAC9D,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACpB,KAAA;QACD,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,IAAIhB,CAAG,GAACiB,QAAU,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,IAAIjB,CAAG,GAACgB,gBAAkB,EAAE;IACrF,QAAA,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvB,KAAA;IACD,IAAA,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/D,IAAA,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACnE;;ICNA,IAAI,UAAkB,CAAC;aAEP,QAAQ,GAAA;IAEvB;;IAEiD;IAEjD,IAAA,UAAU,GAAGD,cAAgB,CAAC;;;;QAK9B,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YACpC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IACjF,KAAA;;QAGD,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5F,KAAC,CAAC,CAAC;IAEH,IAAA,IAAI,YAAY,GAAGpB,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAA;IACF,CAAC;aAEe,iBAAiB,GAAA;IAEhC,IAAA,UAAU,GAAGoB,cAAgB,CAAC;;QAG9B,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YAC9B,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACtF,KAAA;QACD,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YAC/B,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IACxF,KAAA;;QAGD,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5F,KAAC,CAAC,CAAC;IAEH,IAAA,IAAI,YAAY,GAAGpB,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAA;IACF,CAAC;IAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,MAAoB,EAAE,OAAsB,EAAA;;IAGvF,IAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1D,IAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;IAC7C,YAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAClD;IACC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IACzB,KAAA;IACF;;aCnEgB,QAAQ,GAAA;QAEvBD,MAAI,CAAC,KAAK,EAAE,CAAC;IAEb,IAAA,IAAI,WAAW,EAAE;IAChB,QAAA,QAAQ,EAAE,CAAC;IACX,KAAA;IAED,IAAA,UAAU,EAAE,CAAC;IAEb,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAElB,IAAA,WAAW,EAAE,CAAC;IACf,CAAC;IAED,SAAS,WAAW,GAAA;IAEnB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,KAAC,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,UAAU,GAAA;IAElB,IAAA,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACpB,IAAA,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACpB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,SAAS,QAAQ,GAAA;IAEhB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAEtB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACvB;;UC/Ca,WAAW,CAAA;IAAxB,IAAA,WAAA,GAAA;YACC,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;YACd,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;YACpB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;YACrB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;YAC3B,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;YACxB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;YACvB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;SAUvB;IATA,IAAA,KAAK,CAAC,iBAAyB,EAAA;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IACzB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAChC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC3C,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC5B;IACD;;UCfY,QAAQ,CAAA;IAQpB,IAAA,WAAA,CAAY,SAAiB,EAAA;YAP7B,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;YACpB,IAAmB,CAAA,mBAAA,GAAW,CAAC,CAAC;YAChC,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;YAC7B,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;YAC7B,IAAU,CAAA,UAAA,GAAa,EAAE,CAAC;YAIzB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACpD,QAAA,IAAI,MAAM,IAAI,MAAM,YAAY,iBAAiB,EAAE;IAClD,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBACtD,OAAO;IACP,SAAA;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAA6B,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAGwB,WAAa,CAAC;IAClC,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAGA,WAAa,GAAGC,WAAa,CAAC;SACnD;IACD,IAAA,MAAM,CAAC,GAAW,EAAA;IACjB,QAAA,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;IACV,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACrB;IACD,IAAA,SAAS,CAAC,GAAW,EAAA;IACpB,QAAA,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvB,SAAA;SACD;QACD,KAAK,GAAA;YACJ,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAChE;IACD;;ICpCD;UACa,QAAQ,CAAA;QAOpB,WAAY,CAAA,GAAkB,EAAE,IAAY,EAC1C,GAA6B,EAAE,KAAa,EAAE,IAAA,GAAe,QAAQ,EAAA;YAFvE,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;;IAKjB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;QACD,MAAM,GAAA;IACL,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACrD;QACD,KAAK,GAAA;;;IAGJ,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;IAKjD,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;;SAG1F;IACD,CAAA;IAEK,MAAO,gBAAiB,SAAQ,QAAQ,CAAA;QAE7C,WAAY,CAAA,GAAkB,EAAE,IAAY,EAC1C,GAA6B,EAAE,KAAa,EAAE,IAAa,EAAA;YAE5D,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAJ5B,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;SAK1B;IACD,IAAA,IAAI,KAAK,GAAA;YACR,OAAO,IAAI,CAAC,MAAM,CAAC;SACnB;QACD,IAAI,KAAK,CAAC,CAAS,EAAA;IAClB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAChB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;SACzB;IACD;;UClDY,SAAS,CAAA;IAIrB,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAA;IAC5D,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACrB;IACD,IAAA,SAAS,CAAC,QAAmB,EAAA;IAC5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5C,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACtD,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IACxD,QAAA,IAAI,CAAC,UAAU,GAAG,WAAW;oBACzB,OAAO,GAAG,cAAc,CAAC;oBACzB,SAAS,GAAG,YAAY,CAAC;IAC1B,gBAAC,QAAQ,GAAG,aAAa,CAAC,EAAE;IAC9B,YAAA,OAAO,KAAK,CAAC;IACb,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,IAAI,CAAC;IACZ,SAAA;SACD;IACD,CAAA;IAEK,MAAO,eAAgB,SAAQ,SAAS,CAAA;IAI7C,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAAA;IAC/E,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAJ3B,IAAG,CAAA,GAAA,GAAW,IAAI,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IAK7B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SACvB;IACD,IAAA,IAAI,CAAC,KAAa,EAAA;;;;IAIjB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAC9C;QACD,cAAc,CAAC,KAAa,EAAE,WAAwB,EAAA;IACrD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SAC7C;QACS,mBAAmB,CAAC,KAAa,EAAE,WAAwB,EAAA;IACpE,QAAA,IAAI,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;IAC3C,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;IAClB,SAAA;SACD;IACD,CAAA;IAEK,MAAO,MAAO,SAAQ,eAAe,CAAA;IAC1C,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAAA;YAC/E,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;SACrC;QACD,cAAc,CAAC,KAAa,EAAE,WAAwB,EAAA;;IAErD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;;SAE7C;IACD,CAAA;IAEK,MAAO,IAAK,SAAQ,eAAe,CAAA;IAGxC,IAAA,WAAA,CAAY,GAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,aAAqB,EAAA;YACrF,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAFnC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;IAG3B,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACnC;QACD,aAAa,CAAC,KAAa,EAAE,WAAwB,EAAA;IACpD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACpD,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EACX;gBACC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,SAAA;SACD;IACD,IAAA,MAAM,CAAC,QAAoB,EAAA;IAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC3B;IACS,IAAA,WAAW,CAAC,QAAoB,EAAA;IACzC;IACuD;YACvD,IAAI,QAAQ,YAAY,MAAM,EAAE;IAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC7B,SAAA;IACI,aAAA;gBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;IACnB,SAAA;SACD;QACS,WAAW,GAAA;IACpB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7B;IACS,IAAA,aAAa,CAAC,MAAc,EAAA;IACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;SAC/B;IACS,IAAA,iBAAiB,CAAC,MAAc,EAAA;IACzC,QAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;YAEjC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAExB,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,QAAA,MAAM,WAAW,GAAG,iBAAiB,GAAG,EAAE,CAAC;IAC3C,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAC,CAAC,CAAC;IACnC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;IAE5C,QAAA,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACjC,QAAA,MAAM,gBAAgB,GAAG,UAAU,GAAG,IAAI,CAAC;YAC3C,IAAI,MAAM,GAAG,gBAAgB,IAAI,MAAM,GAAG,CAAC,gBAAgB,EAAE;gBAC5D,MAAM,GAAG,CAAC,CAAC;IACX,SAAA;iBACI,IAAI,MAAM,GAAG,CAAC,EAAE;IACpB,YAAA,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IACnC,SAAA;iBACI,IAAI,MAAM,GAAG,CAAC,EAAE;IACpB,YAAA,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IACnC,SAAA;YAED,IAAI,CAAC,GAAG,MAAM,IAAI,UAAU,GAAG,gBAAgB,CAAC,GAAG,WAAW,CAAC;YAE/D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;SAMtB;IACD;;ICtID,SAAS,eAAe,GAAA;QACvB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,SAAS,cAAc,CAAwB,GAAmB,EAAA;IACjE,IAAA,IAAI,GAAG;YACN,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;YAE1D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAEK,MAAO,eAAgB,SAAQ,SAAS,CAAA;QAK7C,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAC3D,GAA6B,EAAE,KAAa,EAAA;IAE7C,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,qBAAsB,SAAQ,eAAe,CAAA;QAKzD,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAC9E,GAA6B,EAAE,KAAa,EAAA;YAE7C,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,YAAa,SAAQ,MAAM,CAAA;QAKvC,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAC9E,GAA6B,EAAE,KAAa,EAAA;YAE7C,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,UAAW,SAAQ,IAAI,CAAA;QAMnC,WAAY,CAAA,GAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,aAAqB,EACrF,GAA6B,EAAE,KAAa,EAAA;YAE5C,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YAJ5C,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;IAKnB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,IAAA,MAAM,CAAC,QAAoB,EAAA;IAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,CAAC,QAAQ,EACb;IACC,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IACrC,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;;;;IAI9C,SAAA;SACD;IACD,CAAA;IAED,SAAS,UAAU,GAAA;QAClB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,IAAA,IAAI,GAAG,GAAkB,IAAI,aAAa,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAA,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,EAC5B;;;;;YAMC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnB,QAAA,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YAE5C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvE,CAAC,IAAI,CAAC,CAAC;IACP,KAAA;IACF,CAAC;IAEK,MAAO,IAAK,SAAQ,eAAe,CAAA;QAKxC,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAC3D,GAA6B,EAAE,KAAa,EAAE,SAAkB,EAAA;YAEjE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAPvC,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;IAQrB,QAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IACzB,QAAA,IAAI,SAAS;IACZ,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;;IAG3C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;;;;SAKrD;IACD;;UCjIY,cAAc,CAAA;IAM1B,IAAA,WAAA,CAAY,OAAwB,EAAA;YADpC,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;IAGrB,QAAA,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC;;IAG9B,QAAA,GAAG,CAAC,MAAM,CAAC,CAAC,GAACC,EAAI,EAAEC,KAAO,GAACC,EAAI,GAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,EAAEF,EAAI,EAAEE,EAAI,EAAEC,WAAa,CAAC,CAAC;YAC7D,GAAG,CAAC,MAAM,CAACxB,CAAG,GAACqB,EAAI,GAACA,EAAI,EAAEC,KAAO,GAACC,EAAI,GAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,GAAG,EAAEF,EAAI,EAAEE,EAAI,EAAEC,WAAa,CAAC,CAAC;;YAG9D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,QAAA,IAAI,OAAO,GAAG5B,YAAe,CAAC,UAAU,EAAE;IACzC,YAAA,UAAU,GAAG6B,eAAiB,CAAC;IAC/B,SAAA;IACD,QAAA,GAAG,CAAC,MAAM,CAAC,CAACC,QAAU,EAAE,CAACA,QAAU,CAAC,CAAC;IACrC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAEA,QAAU,EAAEC,SAAW,EAAEC,iBAAmB,CAAC,CAAC,CAAA;IAC/E,SAAA;YACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;IAC9B,YAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACf,YAAA,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE;IACnB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB,aAAA;gBAED,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5B,YAAA,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE;IACnB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB,aAAA;gBAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAClC,SAAC,CAAC,CAAC;;IAGH,QAAA,IAAI,OAAO,GAAGhC,YAAe,CAAC,WAAW,EAAE;IAC1C,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEI,CAAG,EAAEkB,QAAU,EAAEW,eAAiB,CAAC,CAAC;gBAC1D,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE5B,CAAG,GAACiB,QAAU,CAAC,CAAC;gBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAElB,CAAG,EAAEkB,QAAU,EAAEW,eAAiB,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,SAAA;IACI,aAAA;IACJ,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE7B,CAAG,EAAEkB,QAAU,CAAC,CAAC;IACnD,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEjB,CAAG,GAACiB,QAAU,CAAC,CAAC;IAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,GAAG,EAAElB,CAAG,EAAEkB,QAAU,CAAC,CAAC;IACtD,SAAA;SACD;IACD;;ICrDD,MAAM,gCAAiC,SAAQ,cAAc,CAAA;QAM5D,WAAY,CAAA,OAAwB,EAAE,GAA6B,EAAA;YAElE,KAAK,CAAC,OAAO,CAAC,CAAC;;IAGf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAClC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACzD,GAAG,EAAE,OAAO,CAAC,CAAC;YACd,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CACnC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACzD,GAAG,EAAE,OAAO,CAAC,CAAC;;YAGd,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EACxF,GAAG,EAAE,OAAO,CAAC,CACZ,CAAC;IACH,SAAC,CAAC,CAAC;IACH,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;;IAG5B,QAAA,IAAI,OAAO,GAAGtB,YAAe,CAAC,WAAW,EACzC;IACC,YAAA,MAAM,MAAM,GAAoB,IAAI,CAAC,OAAO,CAAC;IAC7C,YAAA,MAAM,MAAM,GAAoB,IAAI,CAAC,UAAU,CAAC;gBAEhD,IAAI,CAAC,OAAO,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAClG,GAAG,EAAE,MAAM,CAAC,CAAC;IACW,YAAA,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAE7E,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACrG,GAAG,EAAE,MAAM,CAAC,CAAC;IACW,YAAA,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChF,SAAA;IAED,aAAA;IACC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;IAC5B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAC1E,GAAG,EAAE,MAAM,CAAC,CAAC;gBACb,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAC7E,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,SAAA;SACD;IACD,CAAA;IAEK,MAAO,oBAAqB,SAAQ,gCAAgC,CAAA;QAczE,WAAY,CAAA,OAAwB,EAAE,GAA6B,EAAA;IAElE,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpB,QAAA,IAAI,GAAG,GAAG,IAAI,aAAa,CAAC;;IAE5B,QAAA,GAAG,CAAC,MAAM,CAACkC,KAAO,GAACC,SAAW,GAAC,GAAG,EAAEA,SAAW,GAAC,GAAG,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAEA,SAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtE,QAAA,GAAG,CAAC,MAAM,CAACD,KAAO,GAACC,SAAW,GAAC,GAAG,EAAEA,SAAW,GAAC,GAAG,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAEA,SAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACvE,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;;YAG1B,GAAG,CAAC,MAAM,CAAC,CAAC,EAAET,KAAO,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACtB,CAAG,GAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACA,CAAG,GAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACA,CAAG,GAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;;IAGjE,QAAA,GAAG,CAAC,MAAM,CAAC8B,KAAO,GAACE,WAAa,GAAC,CAAC,EAAE,CAAC,GAACd,QAAU,CAAC,CAAC;IAClD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAEc,WAAa,EAAE/B,CAAG,GAACiB,QAAU,GAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;;YAGhF,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEI,KAAO,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEtB,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9E,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEhC,CAAG,GAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAED,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7E,QAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEhC,CAAG,GAACA,CAAG,GAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAED,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC7E,GAAG,CAAC,MAAM,CAACH,KAAO,EAAE,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEG,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9E,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEiC,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7E,QAAA,GAAG,CAAC,MAAM,CAACD,CAAG,GAACA,CAAG,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEiC,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;SAC7E;IACD;;ICtGK,SAAU,mBAAmB,CAAC,OAAoB,EAAA;IAEvD,IAAA,IAAI,YAAY,GAAGL,YAAe,CAAC,QAAQ,CAAC;IAE5C,IAAA,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE;IACjC,QAAA,YAAY,IAAIA,YAAe,CAAC,UAAU,CAAA;IAC1C,KAAA;IACD,IAAA,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,EAAE;IAClC,QAAA,YAAY,IAAIA,YAAe,CAAC,WAAW,CAAA;IAC3C,KAAA;IAED,IAAA,OAAO,YAAY,CAAC;IACrB,CAAC;aAEe,QAAQ,CAAC,YAA6B,EAAE,KAAa,EAAE,UAAkB,EAAA;QAExF,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9B,IAAA,OAAO,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,oBAAoB,CAAC,YAAY,EAAED,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;aAEe,WAAW,GAAA;QAE1B,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;YACjD,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,KAAA;IACD,IAAA,IAAIA,MAAI,EACR;YACCA,MAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;gBACjC,YAAY,CAAC,KAAK,CAAC,CAAC;IACrB,SAAC,CAAC,CAAC;IACH,QAAAA,MAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAErB,QAAA,aAAa,CAACA,MAAI,CAAC,mBAAmB,CAAC,CAAC;IACxC,QAAAA,MAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAEhC,QAAA,aAAa,CAACA,MAAI,CAAC,gBAAgB,CAAC,CAAC;IACrC,QAAAA,MAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAE7B,QAAA,aAAa,CAACA,MAAI,CAAC,gBAAgB,CAAC,CAAC;IACrC,QAAAA,MAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAE7B,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,KAAA;QACD,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,IAAA,cAAc,EAAE,CAAC;IAClB;;IC5CA,IAAI,sBAAuC,CAAC;IAC5C,IAAI,oBAAqC,CAAC;IAEpC,SAAUzB,MAAI,CAAC,YAA6B,EAAE,OAAoB,EAAE,UAAkB,EAAE,KAAa,EAAA;QAE1G,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAElD,gBAAgB,CAACgE,OAAK,CAAC,CAAC;QACxB,IAAI,OAAO,CAAC,kBAAkB,EAAE;IAC/B,QAAA,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACxH,KAAA;IACI,SAAA;YACJ,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9D,KAAA;IACF,CAAC;aAEeC,SAAO,GAAA;IAEtB,IAAA,WAAW,EAAE,CAAC;IACd,IAAA,IAAI,sBAAsB,EAAE;YAC3B,sBAAsB,CAAC,KAAK,EAAE,CAAC;YAC/B,sBAAsB,GAAG,IAAI,CAAC;IAC9B,KAAA;IACD,IAAA,IAAI,oBAAoB,EAAE;YACzB,oBAAoB,CAAC,KAAK,EAAE,CAAC;YAC7B,oBAAoB,GAAG,IAAI,CAAC;IAC5B,KAAA;IACF,CAAC;IAED,SAASD,OAAK,GAAA;IAEb,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAClC,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACvC,IAAA,MAAM,YAAY,GAAG,SAAS,CAACmC,eAAiB,EAAE,IAAI,EAAE,CAAC,KAAa,KAAI;IACzE,QAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,GAAC,IAAI,CAAA,CAAE,CAAC;IAChC,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SAClB,EAAE,qBAAqB,CAAC,CAAC;QAC1BzC,MAAI,CAAC,UAAU,GAAGA,MAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,qBAAqB,GAAA;IAE7B,IAAA,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/C,IAAA,MAAM,CAAC,gBAAgB,CACtB,SAAS,EACT,CAAC,CAAC,KAAI,EAAGA,MAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAC9B,EAAC,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAC,CACvC,CAAC;IAEF,IAAA,oBAAoB,GAAG,IAAI,eAAe,EAAE,CAAC;IAC7C,IAAA,MAAM,CAAC,gBAAgB,CACtB,OAAO,EACP,CAAC,CAAC,KAAI,EAAGA,MAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EACjC,EAAC,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAC,CACrC,CAAC;IAEF,IAAA0C,QAAM,EAAE,CAAC;IACV,CAAC;IAED,SAASA,QAAM,GAAA;IAEd,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,IAAA1C,MAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE2C,qBAAuB,CAAC,CAAC;;IAEpF,IAAA3C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE4C,kBAAoB,CAAC,CAAC;IAC3E,IAAA5C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE6C,kBAAoB,CAAC,CAAC;IAC5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCC+GQ,GAAY,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;OAHlB,UAKK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAJJ,UAGU,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;OAFT,UAAqB,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACrB,UAAoB,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;;8EAAhB,GAAY,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;IAHe,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;IASjD,EAAA,kBAAA,GAAS,IAAC,UAAU,EAAA,OAAA,kBAAA,CAAA;IAIf,EAAA,kBAAA,GAAS,IAAC,YAAY,EAAA,OAAA,kBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAC/B,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAAgC,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;;;IADA,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJtD,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA6B,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;;;IADG,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;IAelD,EAAA,kBAAA,GAAS,CAAC,CAAA,CAAA,CAAA,YAAY,IAAK,eAAA,GAAS,IAAC,UAAU,EAAA,OAAA,iBAAA,CAAA;IAIzC,EAAA,IAAA,eAAA,GAAS,IAAC,YAAY,EAAA,OAAA,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAChC,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA2E,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;6DAArC,GAAU,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OALjD,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAAiE,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;6DAA3B,GAAU,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAWlD,UAKK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAJJ,UAGU,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;OAFT,UAAyC,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACzC,UAAoB,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;;;IAHW,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;yCAWjD,GAAe,CAAA,CAAA,CAAA,IAAAC,mBAAA,CAAA,GAAA,CAAA,CAAA;yCAwCf,GAAe,CAAA,CAAA,CAAA,IAAAhE,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;+BAxCf,GAAe,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;+BAwCf,GAAe,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAfX,CAAA,IAAA,QAAA,eAAA,GAAO,IAAC,kBAAkB,IAAAiE,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAxBlC,UAoCK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAnCJ,UAkCK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjCJ,UAAgF,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;;OAChF,UA+BU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;OA9BT,UAA4B,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OAC5B,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAA6F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAApB,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,WAAW,CAAA;;OAC5F,UAA+C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAEhD,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAgG,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAArB,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,YAAY,CAAA;;OAC/F,UAA6C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAE9C,UAMK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OALJ,UAAa,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;OACb,UAA6F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAzB,GAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;OACjF,UAA+B,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC/B,UAA+F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAA1B,GAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;OAClF,UAAiC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAElC,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAwF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAA3B,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,kBAAkB,CAAA;;OACvF,UAAgD,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;OASjD,UAEK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAA4D,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;;;;2DA9BxB,GAAgB,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;mDA8Bd,GAAQ,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;IA1B2B,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,WAAW,CAAA;;;;IAIjB,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,YAAY,CAAA;;;;IAK3B,IAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;;;IAEZ,IAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;;;IAIrB,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,kBAAkB,CAAA;;;IAGnF,GAAA,gBAAA,GAAO,IAAC,kBAAkB,EAAA;;;;;;;;;;;;;;;;IArBX,KAAA,cAAA,GAAA,oBAAA,CAAA,QAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAuBhC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;sCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;IADa,GAAA,gBAAA,GAAO,IAAC,iBAAiB,KAAA,KAAA,CAAA,EAAA,mBAAA,CAAA,gCAAA,GAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA;;;;OAA7C,UAIQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;IAJY,GAAA,aAAA,CAAA,MAAA,cAAA,GAAO,IAAC,iBAAiB,CAAA,CAAA;;;;;;;;;oCACrC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;qCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAAJ,MAAI,CAAA;;;;IADa,IAAA,aAAA,CAAA,MAAA,cAAA,GAAO,IAAC,iBAAiB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;IAEZ,CAAA,IAAA,OAAA,YAAA,GAAI,KAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;IAA7B,GAAA,MAAA,CAAA,OAAA,GAAA,kBAAA,YAAA,GAAI,KAAC,QAAQ,CAAA;;;;;OAA5B,UAAqD,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;IAAtB,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,YAAA,GAAI,KAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;IAA7B,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,kBAAA,MAAA,kBAAA,YAAA,GAAI,KAAC,QAAQ,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAkB3B,GAAW,CAAA,EAAA,CAAA,CAAC,MAAM,KAAK,CAAC,EAAA,OAAAC,mBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAL/B,UAiBK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAhBJ,UAA8E,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAC9E,UAcU,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;OAbT,UAA2B,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OAC3B,UAAsE,CAAA,QAAA,EAAA,OAAA,CAAA,CAAA;;;;;;8DAHjC,GAAmB,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;2DAGlB,GAAgB,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;IAFlC,KAAA,cAAA,GAAA,oBAAA,CAAA,QAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAYxC,UAA+C,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;sCARxC,GAAW,CAAA,EAAA,CAAA,CAAA;;;;oCAAhB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;qCAAC,GAAW,CAAA,EAAA,CAAA,CAAA;;;;mCAAhB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAEH,CAAA,IAAA,QAAA,kBAAA,GAAU,KAAC,iBAAiB,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;iBAAC,qDAC9B,CAAA,CAAA;;;;;;;;;;;;;;;OAFD,UAIK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;OAFJ,UAAmF,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACnF,UAAmF,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;IAFlF,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,mBAAA,IAAA,IAAA,QAAA,MAAA,QAAA,kBAAA,GAAU,KAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAnG/B,GAAS,CAAA,CAAA,CAAA,IAAA,kBAAA,CAAA,GAAA,CAAA,CAAA;qCASR,GAAU,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;qCAgBV,GAAU,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;sCAaX,GAAY,CAAA,CAAA,CAAA,IAAAC,mBAAA,CAAA,GAAA,CAAA,CAAA;0CAWZ,GAAgB,CAAA,CAAA,CAAA,IAAArE,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;8BA3BRsE,YAAU,CAAA,CAAA;;;;oCADY,GAAU,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAvB9C,UAkHM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;OA3FL,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwB,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;yBAtBpB,GAAS,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;2BASR,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;gDAYmB,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA;;;2BAIvC,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;4BAaX,GAAY,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;gCAWZ,GAAgB,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA9Nf,MAAAA,YAAU,GAAG,WAAW,CAAA;IAcxB,MAAAC,4BAA0B,GAAG,GAAG,CAAA;;;;;SAnBlC,IAAI,CAAA;SACJ,QAAQ,CAAA;;;WAGN,OAAO,GAAA,IAAOC,WAAgB,EAAA,CAAA;;;IAIhC,CAAA,IAAA,UAAU,GAAG,IAAI,CAAA;;IACjB,CAAA,IAAA,gBAAgB,GAAG,IAAI,CAAA;IACvB,CAAA,IAAA,eAAe,GAAG,IAAI,CAAA;IACtB,CAAA,IAAA,eAAe,GAAG,KAAK,CAAA;IACvB,CAAA,IAAA,SAAS,GAAG,KAAK,CAAA;IACjB,CAAA,IAAA,YAAY,GAAG,EAAE,CAAA;IACjB,CAAA,IAAA,YAAY,GAAG,KAAK,CAAA;SAEpB,WAAW,GAAA,EAAA,CAAA;SAEX,sBAAsB,CAAA;;KAG1B,OAAO,CAAA,YAAA;uBACN,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAChF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;sBAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;IAClB,EAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;;;KAG1C,SAAS,CAAA,YAAA;IACR,EAAA,aAAa,CAAC,sBAAsB,CAAA,CAAA;IACpC,EAAAC,SAAY,EAAA,CAAA;;;cAGJ,SAAS,GAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,IAAI,CAAA,CAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,IAAI,CAAA,CAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;IACtB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAK,CAAA,CAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,KAAK,CAAA,CAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;IACpB,EAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAA,CAAA;IAC3B,EAAAA,SAAY,EAAA,CAAA;;;WAGP,QAAQ,GAAA,YAAA;IAEb,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,KAAK,CAAA,CAAA;IACxB,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,IAAI,CAAA,CAAA;IACb,EAAA,MAAA,YAAY,GAAGC,mBAAwB,CAAC,OAAO,CAAA,CAAA;;;IAE9C,GAAA,MAAA,QAAQ,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,mBAAA,CAAA,EAAA;IAC1F,IAAA,MAAM,EAAG,MAAM;QACf,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;QAC7C,IAAI,EAAG,IAAI,CAAC,SAAS,CAAA;SACpB,iBAAiB,EAAG,OAAO,CAAC,iBAAiB;SAC7C,iBAAiB,EAAG,OAAO,CAAC,iBAAiB;IAC7C,KAAA,WAAW,EAAG,YAAY;SAC1B,sBAAsB,EAAG,OAAO,CAAC,kBAAA;;;;IAGnC,GAAA,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAA,CAAA;aACnC,YAAY,GAAA,MAAS,QAAQ,CAAC,IAAI,EAAA,CAAA;aAClC,KAAK,GAAY,YAAY,CAAC,KAAK,CAAA;IACzC,GAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;;WAChB,QAAQ,CAAC,EAAE,IAAI,KAAK,EAAA;IAEvB,IAAA,sBAAsB,GAAG,WAAW,CAAC,cAAc,EAAEH,4BAA0B,CAAA,CAAA;QAC/EI,MAAS,CAAC,YAAY,EAAE,OAAO,EAAEL,YAAU,EAAE,KAAK,CAAA,CAAA;IAClD,IAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;QAIlB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAA,CAAA;QACxB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;wBACjC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAA,CAAA;IACnC,IAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAI,CAAA,CAAA;IAChB,IAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAA,CAAA;;QAC3B,UAAU;;IACT,MAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,IAAI,CAAA,CAAA;IACvB,MAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,KAAK,CAAA,CAAA;IACjB,MAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,EAAE,CAAA,CAAA;;SACf,IAAI;;;cAEA,CAAC,EAAA;OACT,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA,CAAA;;;;IAIT,CAAA,MAAA,wBAAwB,SAAS,UAAgB,IAAA;IAEtD,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,KAAK,CAAA,CAAA;IACxB,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,IAAI,CAAA,CAAA;MACnB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA,CAAA;MAC3B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA,CAAA;;IAClB,EAAA,IAAA,UAAU,CAAC,KAAK,EAAA;IAEnB,GAAA,sBAAsB,GAAG,WAAW,CAAC,cAAc,EAAEC,4BAA0B,CAAA,CAAA;IAC/E,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAA,OAAA,CAAA,CAAA;IACxD,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAA,OAAA,CAAA,CAAA;uBACxD,OAAO,CAAC,kBAAkB,GAAG,IAAI,EAAA,OAAA,CAAA,CAAA;uBACjC,OAAO,CAAC,eAAe,GAAG,IAAI,EAAA,OAAA,CAAA,CAAA;IAC9B,GAAAI,MAAS,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,EAAEL,YAAU,EAAE,UAAU,CAAC,KAAK,CAAA,CAAA;IACvE,GAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;IACpB,GAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;;WAId,cAAc,GAAA,MAAA;MACnB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA,CAAA;;UACxB,SAAS,EAAA;;;;;;;;IAKT,EAAA,IAAA,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,UAAU,EAAA;IAEjD,GAAA,aAAa,CAAC,sBAAsB,CAAA,CAAA;OACpC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;;OACjC,UAAU;;SACT,SAAS,EAAA,CAAA;SACT,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAA,CAAA;;QACvC,IAAI;;;;;WAIH,mBAAmB,GAAA,MAAA;IACxB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;IACtB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAK,CAAA,CAAA;;;WAGlB,gBAAgB,GAAA,YAAA;IACrB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAK,CAAA,CAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;uBACtB,WAAW,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACvF,wBAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;IAGZ,CAAA,MAAA,gBAAgB,SAAS,UAAU,IAAA;YAClC,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,oBAAA,CAAA,EAAA;IACzE,GAAA,MAAM,EAAE,MAAM;OACd,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,GACnB,KAAK,EAAG,UAAU,CAAC,KAAA,EAAA,CAAA;IAGpB,GAAA,CAAA,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAChB,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA,CAAA,CAAA;;MACjC,gBAAgB,EAAA,CAAA;;;IAGX,CAAA,MAAA,gBAAgB,SAAS,UAAgB,IAAA;IAExC,EAAA,MAAA,GAAG,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,mBAAA,CAAA,EAAA;IACrF,GAAA,MAAM,EAAE,MAAM;OACd,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,GACnB,KAAK,EAAG,UAAU,CAAC,KAAA,EAAA,CAAA;IAElB,GAAA,CAAA,CAAA,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA,CAAA,CAAA;;UAE/B,GAAG,IAAI,GAAG,CAAC,EAAE,EAAA;IAChB,GAAA,wBAAwB,CAAC,UAAU,CAAA,CAAA;;;;cAI5B,UAAU,GAAA;IAClB,EAAA,aAAa,CAAC,sBAAsB,CAAA,CAAA;MACpC,SAAS,EAAA,CAAA;;;;;;;;;;;IAmEqE,EAAA,OAAO,CAAC,WAAW,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAIjB,EAAA,OAAO,CAAC,YAAY,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAK3B,EAAA,OAAO,CAAC,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAEZ,EAAA,OAAO,CAAC,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAIrB,EAAA,OAAO,CAAC,kBAAkB,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAInE,EAAA,OAAO,CAAC,iBAAiB,GAAA,YAAA,CAAA,IAAA,CAAA,CAAA;;;;;IAwBA,CAAA,MAAA,aAAA,GAAA,UAAA,IAAA,gBAAgB,CAAC,UAAU,CAAA,CAAA;IAC3B,CAAA,MAAA,eAAA,GAAA,UAAA,IAAA,gBAAgB,CAAC,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IChPrE,CAAA,IAAA,OAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;IAAlB,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAFJ,CAAA,IAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;iBAAnB,OAAK,CAAA,CAAA;;iBAAe,GAAC,CAAA,CAAA;;;;;;OAA5B,UAAoC,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAAhC,UAA4B,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA;;;;;;IAAnB,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;IAFtB,CAAA,IAAA,QAAA,SAAA,GAAC,MAAG,CAAC,GAAA,EAAA,CAAA;;;;;6BAML,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA;;;;6BAClB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;6BACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;6BACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA;;;;;IARpB,EAAA,aAAA,GAAI,CAAC,CAAA,CAAA,CAAA,QAAQ,qBAAK,GAAW,IAAC,QAAQ,EAAA,OAAAtE,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAF5C,UAWI,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAVH,UAAe,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;;;;OAMf,UAA4B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC5B,UAA6B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC7B,UAA6B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC7B,UAA8B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;uEAHzB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEAClB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAXpB,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;oCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAfT,UAAK,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OAEL,UA6BK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OA5BJ,UA2BO,CAAA,GAAA,EAAA,KAAA,CAAA,CAAA;OA1BN,UASO,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OARN,UAOI,CAAA,KAAA,EAAA,EAAA,CAAA,CAAA;OANH,UAAS,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACT,UAAgB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OAChB,UAAW,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACX,UAAY,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACZ,UAAY,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACZ,UAAoB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OAGtB,UAeO,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;kCAdC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;mCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SArCJ,WAAW,CAAA;SACX,QAAQ,GAAA,EAAA,CAAA;SACR,UAAU,CAAA;;KACd,OAAO,CAAA,YAAA;sBACN,WAAW,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACvF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;sBAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,oBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;IAClB,EAAA,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,CAAA,CAAA;;;KAG5C,SAAS,CAAA,YAAA;IACR,EAAA,aAAa,CAAC,UAAU,CAAA,CAAA;;;cAGhB,WAAW,GAAA;MACnB,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,oBAAA,CAAA,CAAA,CACnE,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CACjB,IAAI,CAAE,CAAC,IAAA,YAAA,CAAA,CAAA,EAAI,QAAQ,GAAG,CAAC,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICVpB,SAAU,IAAI,CAAC,YAA6B,EAAE,KAAa,EAAE,UAAkB,EAAE,aAAqB,EAAA;IAE3G,IAAA,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE1C,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;aAEe,OAAO,GAAA;IAEtB,IAAA,WAAW,EAAE,CAAC;IACf,CAAC;IAED,SAAS,KAAK,GAAA;IAEb,IAAA,MAAM,EAAE,CAAC;IACV,CAAC;IAED,SAAS,MAAM,GAAA;IAEd,IAAAoB,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE4C,kBAAoB,CAAC,CAAC;IACpF,IAAA5C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE6C,kBAAoB,CAAC,CAAC;IAC5E;;;;;;;;;;;;;;;;;ICHI,CAAA,IAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA;;;IAAQ,CAAA,IAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA;;;;;;;;;;;;;;iBADzC,IACd,CAAA,CAAA;;iBAAyB,UAAM,CAAA,CAAA;;iBAAyB,UACzD,CAAA,CAAA;;iBAAK,IAAE,CAAA,CAAA;wCAAC,GAAkB,CAAA,CAAA,CAAA,CAAA,CAAA;iBAAC,GAC5B,CAAA,CAAA;;;;;;;;;OAJD,UAKI,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAJH,UAGQ,CAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;OADP,UAAK,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;IADH,GAAA,IAAA,KAAA,aAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAAQ,GAAA,IAAA,KAAA,aAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;qFAChD,GAAkB,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;WA9BhB,KAKV,EAAA,GAAA,OAAA,CAAA;IAEG,CAAA,IAAA,kBAAkB,GAAG,EAAE,CAAA;;KAE3B,OAAO,CAAA,YAAA;IACF,EAAA,IAAA,KAAK,CAAC,WAAW,KAAK,YAAY,CAAC,QAAQ,EAAA;IAC9C,GAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,GAAG,UAAU,CAAA,CAAA;;IAG3B,GAAA,IAAA,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,UAAU,EAAA;IAC9C,IAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,aAAa,CAAA,CAAA;;;IAEhC,GAAA,IAAA,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,EAAA;YAC3C,kBAAkB,EAAA;IAAI,KAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,IAAI,CAAA,CAAA;;;IACpD,IAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,cAAc,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICoEjC,CAAA,IAAA,QAAA,iBAAA,GAAS,IAAC,UAAU,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;IAApB,GAAA,kBAAA,GAAS,IAAC,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OACxB,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA6B,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;;;IADG,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;IAWjD,CAAA,IAAA,QAAA,GAAA,eAAA,GAAS,IAAC,UAAU,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;IAApB,GAAA,IAAA,eAAA,GAAS,IAAC,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OACzB,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA+D,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;6DAAzB,GAAU,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAoB5C,GAAS,CAAA,CAAA,CAAA,CAAC,MAAM,KAAK,CAAC,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAZ5B,UAqBK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApBJ,UAUU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;OATT,UAAuB,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACvB,UAAoE,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACpE,UAMK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OALJ,UAAa,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;OACb,UAAqF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;qDAAjB,GAAK,CAAA,CAAA,CAAA,CAAA;;OACzE,UAA+B,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC/B,UAAuF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;qDAAlB,GAAK,CAAA,CAAA,CAAA,CAAA;;OAC1E,UAAiC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;wDANI,GAAc,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;;;sDAGiB,GAAK,CAAA,CAAA,CAAA,CAAA;;;;sDAEJ,GAAK,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAR5C,KAAA,UAAA,GAAA,oBAAA,CAAA,IAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmBpD,UAAsB,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;oCALd,GAAS,CAAA,CAAA,CAAA,CAAA;;;;oCAAd,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;OADP,UAIM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;mCAHE,GAAS,CAAA,CAAA,CAAA,CAAA;;;;mCAAd,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;4BAAJ,MAAI,EAAA,CAAA,GAAA,WAAA,CAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;sCAAJ,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCACiB,GAAK,CAAA,EAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;4EAAL,GAAK,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAtC1B,GAAU,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;qCAYV,GAAU,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;oCAUX,GAAU,CAAA,CAAA,CAAA,IAAA,eAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;8BAbF,UAAU,CAAA,CAAA;;;;oCADY,GAAU,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAV9C,UAiDM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAvCL,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwB,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;2BATnB,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;gDAQmB,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA;;;2BAIvC,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;0BAUX,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAjGT,MAAA,UAAU,GAAG,WAAW,CAAA;IAQxB,MAAA,0BAA0B,GAAG,GAAG,CAAA;;;;;SAZlC,IAAI,CAAA;SACJ,QAAQ,CAAA;IAIR,CAAA,IAAA,KAAK,GAAG,KAAK,CAAA;SACb,SAAS,GAAA,EAAA,CAAA;;;IAGT,CAAA,IAAA,UAAU,GAAG,IAAI,CAAA;;SAEjB,sBAAsB,CAAA;;KAG1B,OAAO,CAAA,YAAA;MACN,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAChF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;MAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;IACZ,EAAA,MAAA,oBAAoB,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,sBAAA,CAAA,CAAA,CAAA;YACjG,gBAAgB,GAAA,MAAS,oBAAoB,CAAC,IAAI,EAAA,CAAA;IACxD,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,gBAAgB,CAAA,CAAA;;;KAG7B,SAAS,CAAA,YAAA;IACR,EAAA,aAAa,CAAC,sBAAsB,CAAA,CAAA;IACpC,EAAAW,OAAqB,EAAA,CAAA;;;oBAGP,iBAAiB,CAAC,aAAqB,EAAE,YAAwC,EAAA;IAE/F,EAAA,sBAAsB,GAAG,WAAW,CAAC,cAAc,EAAE,0BAA0B,CAAA,CAAA;MAC/EC,IAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,CAAA,CAAA;IACjE,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;WAGb,cAAc,GAAA,MAAA;MACnB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA,CAAA;;UACxB,SAAS,EAAA;;;;;;;;IAKT,EAAA,IAAA,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,UAAU,EAAA;IAEjD,GAAA,aAAa,CAAC,sBAAsB,CAAA,CAAA;OACpC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;;OACjC,UAAU;;SACT,SAAS,EAAA,CAAA;SACT,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAA,CAAA;;QACvC,IAAI;;;;;cAIA,UAAU,GAAA;IAClB,EAAA,aAAa,CAAC,sBAAsB,CAAA,CAAA;MACpC,SAAS,EAAA,CAAA;;;oBAGK,SAAS,GAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,IAAI,CAAA,CAAA;IACjB,EAAAD,OAAqB,EAAA,CAAA;MACrB,cAAc,EAAA,CAAA;;;oBAGA,cAAc,GAAA;sBAC5B,SAAS,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACrF,sBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;MAyCqD,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;MAEJ,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;mCAOjC,CAAC,KAAK,iBAAiB,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,WAAW,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICtH9G,MAAM,aAAa,GAAG;IAC7B,EAAE,GAAG,EAAE,UAAU;IACjB,EAAE,MAAM,EAAE,uBAAuB;IACjC,EAAE,OAAO,EAAEhF,MAAI,CAAC;IAChB,IAAI,SAAS,EAAE,IAAI;IACnB,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAC;IAClD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,YAAY,EAAEA,MAAI,CAAC;IACrB,IAAI,SAAS,EAAE,aAAa;IAC5B,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAC;IAClD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,UAAU,EAAEA,MAAI,CAAC;IACnB,IAAI,SAAS,EAAE,OAAO;IACtB,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAC;IAClD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,UAAU,EAAEA,MAAI,CAAC;IACnB,IAAI,SAAS,EAAE,WAAW;IAC1B,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAC;IAClD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,YAAY,EAAEA,MAAI,CAAC;IACrB,IAAI,SAAS,EAAE,WAAW;IAC1B,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAC;IACpD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,sBAAsB,EAAE,sBAAsB;IAChD,EAAE,GAAG,EAAE,QAAQ;IACf,CAAC;;;;;;;;;;;wBCvFe,aAAa,EAAA;;;;yDAAuB,GAAgB,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAV5D,CAAA,MAAA,gBAAgB,GAAI,KAAK,IAAA;IAC7B,EAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,MAAM,CAAA,CAAA;;;;IAIpD,EAAA,OAAO,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPf,UAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QACnB,MAAM,EAAE,QAAQ,CAAC,IAAI;IACrB,IAAA,KAAK,EAAE;;IAEN,KAAA;IACD,CAAA;;;;;;;;"} \ No newline at end of file