diff --git a/.gitignore b/.gitignore index 668cb60877b0..e43721a088c1 100644 --- a/.gitignore +++ b/.gitignore @@ -81,6 +81,7 @@ tool-data/shared/ucsc/publicbuilds.txt tool-data/shared/ucsc/ucsc_build_sites.txt tool-data/*.loc tool-data/genome/* +tool-data/*.sample # Test output test-data-cache @@ -91,6 +92,7 @@ test/tool_shed/tmp/* htmlcov run_unit_tests.html test/unit/**.log +.tox # Project files *.kpf diff --git a/.travis.yml b/.travis.yml index 202e6df26f7e..6e1c444185d9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,15 @@ language: python -python: - - "2.7" - - "2.6" +python: 2.7 +env: + - TOX_ENV=py27-lint + - TOX_ENV=py26-lint + - TOX_ENV=py27-unit + - TOX_ENV=py26-unit + - TOX_ENV=qunit + install: - - virtualenv .venv - - . .venv/bin/activate - - pip install flake8 -script: ./.ci/flake8_wrapper.sh && ./run_tests.sh -u + - pip install tox + - if [ "$TOX_ENV" == "qunit" ]; then bash -c 'cd test/qunit && npm install'; fi + +script: tox -e $TOX_ENV + diff --git a/client/bower.json b/client/bower.json index c1c9f187fa98..161347ce6808 100644 --- a/client/bower.json +++ b/client/bower.json @@ -11,7 +11,6 @@ "jquery": "~1.11.1", "traceKit": "*", "ravenjs": "~1.1.16", - "require": "*", "underscore": "~1.7.0", "backbone": "~1.1.2", "bootstrap": "~3.3.2", @@ -32,9 +31,11 @@ "jquery-ui": "git://github.com/jquery/jquery-ui.git#~1.11.2", "threedubmedia.jquery.event": "*", "handlebars": "~2.0.0", - "jquery-migrate": "~1.2.1" + "jquery-migrate": "~1.2.1", + "requirejs": "~2.1.17" }, "resolutions": { "jquery": "~1.11.1" - } + }, + "devDependencies": {} } diff --git a/client/galaxy/scripts/libs/d3.js b/client/galaxy/scripts/libs/d3.js index 3969bec7f879..8868e4250333 100755 --- a/client/galaxy/scripts/libs/d3.js +++ b/client/galaxy/scripts/libs/d3.js @@ -1,36 +1,46 @@ -d3 = function() { +!function() { var d3 = { - version: "3.4.8" - }; - if (!Date.now) Date.now = function() { - return +new Date(); + version: "3.5.5" }; var d3_arraySlice = [].slice, d3_array = function(list) { return d3_arraySlice.call(list); }; - var d3_document = document, d3_documentElement = d3_document.documentElement, d3_window = window; - try { - d3_array(d3_documentElement.childNodes)[0].nodeType; - } catch (e) { - d3_array = function(list) { - var i = list.length, array = new Array(i); - while (i--) array[i] = list[i]; - return array; - }; + var d3_document = this.document; + function d3_documentElement(node) { + return node && (node.ownerDocument || node.document || node).documentElement; } - try { - d3_document.createElement("div").style.setProperty("opacity", 0, ""); - } catch (error) { - var d3_element_prototype = d3_window.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty; - d3_element_prototype.setAttribute = function(name, value) { - d3_element_setAttribute.call(this, name, value + ""); - }; - d3_element_prototype.setAttributeNS = function(space, local, value) { - d3_element_setAttributeNS.call(this, space, local, value + ""); - }; - d3_style_prototype.setProperty = function(name, value, priority) { - d3_style_setProperty.call(this, name, value + "", priority); - }; + function d3_window(node) { + return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView); + } + if (d3_document) { + try { + d3_array(d3_document.documentElement.childNodes)[0].nodeType; + } catch (e) { + d3_array = function(list) { + var i = list.length, array = new Array(i); + while (i--) array[i] = list[i]; + return array; + }; + } + } + if (!Date.now) Date.now = function() { + return +new Date(); + }; + if (d3_document) { + try { + d3_document.createElement("DIV").style.setProperty("opacity", 0, ""); + } catch (error) { + var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty; + d3_element_prototype.setAttribute = function(name, value) { + d3_element_setAttribute.call(this, name, value + ""); + }; + d3_element_prototype.setAttributeNS = function(space, local, value) { + d3_element_setAttributeNS.call(this, space, local, value + ""); + }; + d3_style_prototype.setProperty = function(name, value, priority) { + d3_style_setProperty.call(this, name, value + "", priority); + }; + } } d3.ascending = d3_ascending; function d3_ascending(a, b) { @@ -42,10 +52,16 @@ d3 = function() { d3.min = function(array, f) { var i = -1, n = array.length, a, b; if (arguments.length === 1) { - while (++i < n && !((a = array[i]) != null && a <= a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && b >= b) { + a = b; + break; + } while (++i < n) if ((b = array[i]) != null && a > b) a = b; } else { - while (++i < n && !((a = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) { + a = b; + break; + } while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b; } return a; @@ -53,10 +69,16 @@ d3 = function() { d3.max = function(array, f) { var i = -1, n = array.length, a, b; if (arguments.length === 1) { - while (++i < n && !((a = array[i]) != null && a <= a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && b >= b) { + a = b; + break; + } while (++i < n) if ((b = array[i]) != null && b > a) a = b; } else { - while (++i < n && !((a = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) { + a = b; + break; + } while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b; } return a; @@ -64,13 +86,19 @@ d3 = function() { d3.extent = function(array, f) { var i = -1, n = array.length, a, b, c; if (arguments.length === 1) { - while (++i < n && !((a = c = array[i]) != null && a <= a)) a = c = undefined; + while (++i < n) if ((b = array[i]) != null && b >= b) { + a = c = b; + break; + } while (++i < n) if ((b = array[i]) != null) { if (a > b) a = b; if (c < b) c = b; } } else { - while (++i < n && !((a = c = f.call(array, array[i], i)) != null && a <= a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) { + a = c = b; + break; + } while (++i < n) if ((b = f.call(array, array[i], i)) != null) { if (a > b) a = b; if (c < b) c = b; @@ -78,35 +106,67 @@ d3 = function() { } return [ a, c ]; }; + function d3_number(x) { + return x === null ? NaN : +x; + } + function d3_numeric(x) { + return !isNaN(x); + } d3.sum = function(array, f) { var s = 0, n = array.length, a, i = -1; if (arguments.length === 1) { - while (++i < n) if (!isNaN(a = +array[i])) s += a; + while (++i < n) if (d3_numeric(a = +array[i])) s += a; } else { - while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a; + while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a; } return s; }; - function d3_number(x) { - return x != null && !isNaN(x); - } d3.mean = function(array, f) { var s = 0, n = array.length, a, i = -1, j = n; if (arguments.length === 1) { - while (++i < n) if (d3_number(a = array[i])) s += a; else --j; + while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j; } else { - while (++i < n) if (d3_number(a = f.call(array, array[i], i))) s += a; else --j; + while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j; } - return j ? s / j : undefined; + if (j) return s / j; }; d3.quantile = function(values, p) { var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h; return e ? v + e * (values[h] - v) : v; }; d3.median = function(array, f) { - if (arguments.length > 1) array = array.map(f); - array = array.filter(d3_number); - return array.length ? d3.quantile(array.sort(d3_ascending), .5) : undefined; + var numbers = [], n = array.length, a, i = -1; + if (arguments.length === 1) { + while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a); + } else { + while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a); + } + if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5); + }; + d3.variance = function(array, f) { + var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0; + if (arguments.length === 1) { + while (++i < n) { + if (d3_numeric(a = d3_number(array[i]))) { + d = a - m; + m += d / ++j; + s += d * (a - m); + } + } + } else { + while (++i < n) { + if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) { + d = a - m; + m += d / ++j; + s += d * (a - m); + } + } + } + if (j > 1) return s / (j - 1); + }; + d3.deviation = function() { + var v = d3.variance.apply(this, arguments); + return v ? Math.sqrt(v) : v; }; function d3_bisector(compare) { return { @@ -138,11 +198,15 @@ d3 = function() { return d3_ascending(f(d), x); } : f); }; - d3.shuffle = function(array) { - var m = array.length, t, i; + d3.shuffle = function(array, i0, i1) { + if ((m = arguments.length) < 3) { + i1 = array.length; + if (m < 2) i0 = 0; + } + var m = i1 - i0, t, i; while (m) { i = Math.random() * m-- | 0; - t = array[m], array[m] = array[i], array[i] = t; + t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t; } return array; }; @@ -223,80 +287,84 @@ d3 = function() { return k; } function d3_class(ctor, properties) { - try { - for (var key in properties) { - Object.defineProperty(ctor.prototype, key, { - value: properties[key], - enumerable: false - }); - } - } catch (e) { - ctor.prototype = properties; + for (var key in properties) { + Object.defineProperty(ctor.prototype, key, { + value: properties[key], + enumerable: false + }); } } - d3.map = function(object) { + d3.map = function(object, f) { var map = new d3_Map(); - if (object instanceof d3_Map) object.forEach(function(key, value) { - map.set(key, value); - }); else for (var key in object) map.set(key, object[key]); + if (object instanceof d3_Map) { + object.forEach(function(key, value) { + map.set(key, value); + }); + } else if (Array.isArray(object)) { + var i = -1, n = object.length, o; + if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o); + } else { + for (var key in object) map.set(key, object[key]); + } return map; }; - function d3_Map() {} + function d3_Map() { + this._ = Object.create(null); + } + var d3_map_proto = "__proto__", d3_map_zero = "\x00"; d3_class(d3_Map, { has: d3_map_has, get: function(key) { - return this[d3_map_prefix + key]; + return this._[d3_map_escape(key)]; }, set: function(key, value) { - return this[d3_map_prefix + key] = value; + return this._[d3_map_escape(key)] = value; }, remove: d3_map_remove, keys: d3_map_keys, values: function() { var values = []; - this.forEach(function(key, value) { - values.push(value); - }); + for (var key in this._) values.push(this._[key]); return values; }, entries: function() { var entries = []; - this.forEach(function(key, value) { - entries.push({ - key: key, - value: value - }); + for (var key in this._) entries.push({ + key: d3_map_unescape(key), + value: this._[key] }); return entries; }, size: d3_map_size, empty: d3_map_empty, forEach: function(f) { - for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) f.call(this, key.substring(1), this[key]); + for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]); } }); - var d3_map_prefix = "\x00", d3_map_prefixCode = d3_map_prefix.charCodeAt(0); + function d3_map_escape(key) { + return (key += "") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key; + } + function d3_map_unescape(key) { + return (key += "")[0] === d3_map_zero ? key.slice(1) : key; + } function d3_map_has(key) { - return d3_map_prefix + key in this; + return d3_map_escape(key) in this._; } function d3_map_remove(key) { - key = d3_map_prefix + key; - return key in this && delete this[key]; + return (key = d3_map_escape(key)) in this._ && delete this._[key]; } function d3_map_keys() { var keys = []; - this.forEach(function(key) { - keys.push(key); - }); + for (var key in this._) keys.push(d3_map_unescape(key)); return keys; } function d3_map_size() { var size = 0; - for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) ++size; + for (var key in this._) ++size; return size; } function d3_map_empty() { - for (var key in this) if (key.charCodeAt(0) === d3_map_prefixCode) return false; + for (var key in this._) return false; return true; } d3.nest = function() { @@ -367,25 +435,27 @@ d3 = function() { if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]); return set; }; - function d3_Set() {} + function d3_Set() { + this._ = Object.create(null); + } d3_class(d3_Set, { has: d3_map_has, - add: function(value) { - this[d3_map_prefix + value] = true; - return value; - }, - remove: function(value) { - value = d3_map_prefix + value; - return value in this && delete this[value]; + add: function(key) { + this._[d3_map_escape(key += "")] = true; + return key; }, + remove: d3_map_remove, values: d3_map_keys, size: d3_map_size, empty: d3_map_empty, forEach: function(f) { - for (var value in this) if (value.charCodeAt(0) === d3_map_prefixCode) f.call(this, value.substring(1)); + for (var key in this._) f.call(this, d3_map_unescape(key)); } }); d3.behavior = {}; + function d3_identity(d) { + return d; + } d3.rebind = function(target, source) { var i = 1, n = arguments.length, method; while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]); @@ -399,7 +469,7 @@ d3 = function() { } function d3_vendorSymbol(object, name) { if (name in object) return name; - name = name.charAt(0).toUpperCase() + name.substring(1); + name = name.charAt(0).toUpperCase() + name.slice(1); for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) { var prefixName = d3_vendorPrefixes[i] + name; if (prefixName in object) return prefixName; @@ -416,8 +486,8 @@ d3 = function() { d3_dispatch.prototype.on = function(type, listener) { var i = type.indexOf("."), name = ""; if (i >= 0) { - name = type.substring(i + 1); - type = type.substring(0, i); + name = type.slice(i + 1); + type = type.slice(0, i); } if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener); if (arguments.length === 2) { @@ -492,8 +562,12 @@ d3 = function() { return n.querySelector(s); }, d3_selectAll = function(s, n) { return n.querySelectorAll(s); - }, d3_selectMatcher = d3_documentElement[d3_vendorSymbol(d3_documentElement, "matchesSelector")], d3_selectMatches = function(n, s) { - return d3_selectMatcher.call(n, s); + }, d3_selectMatches = function(n, s) { + var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, "matchesSelector")]; + d3_selectMatches = function(n, s) { + return d3_selectMatcher.call(n, s); + }; + return d3_selectMatches(n, s); }; if (typeof Sizzle === "function") { d3_select = function(s, n) { @@ -503,7 +577,7 @@ d3 = function() { d3_selectMatches = Sizzle.matchesSelector; } d3.selection = function() { - return d3_selectionRoot; + return d3.select(d3_document.documentElement); }; var d3_selectionPrototype = d3.selection.prototype = []; d3_selectionPrototype.select = function(selector) { @@ -558,8 +632,8 @@ d3 = function() { qualify: function(name) { var i = name.indexOf(":"), prefix = name; if (i >= 0) { - prefix = name.substring(0, i); - name = name.substring(i + 1); + prefix = name.slice(0, i); + name = name.slice(i + 1); } return d3_nsPrefix.hasOwnProperty(prefix) ? { space: d3_nsPrefix[prefix], @@ -627,7 +701,7 @@ d3 = function() { return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g"); } function d3_selection_classes(name) { - return name.trim().split(/^|\s+/); + return (name + "").trim().split(/^|\s+/); } function d3_selection_classed(name, value) { name = d3_selection_classes(name).map(d3_selection_classedName); @@ -663,7 +737,10 @@ d3 = function() { for (priority in name) this.each(d3_selection_style(priority, name[priority], value)); return this; } - if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name); + if (n < 2) { + var node = this.node(); + return d3_window(node).getComputedStyle(node, null).getPropertyValue(name); + } priority = ""; } return this.each(d3_selection_style(name, value, priority)); @@ -729,11 +806,14 @@ d3 = function() { }); }; function d3_selection_creator(name) { - return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? function() { + function create() { + var document = this.ownerDocument, namespace = this.namespaceURI; + return namespace ? document.createElementNS(namespace, name) : document.createElement(name); + } + function createNS() { return this.ownerDocument.createElementNS(name.space, name.local); - } : function() { - return this.ownerDocument.createElementNS(this.namespaceURI, name); - }; + } + return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? createNS : create; } d3_selectionPrototype.insert = function(name, before) { name = d3_selection_creator(name); @@ -743,11 +823,12 @@ d3 = function() { }); }; d3_selectionPrototype.remove = function() { - return this.each(function() { - var parent = this.parentNode; - if (parent) parent.removeChild(this); - }); + return this.each(d3_selectionRemove); }; + function d3_selectionRemove() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); + } d3_selectionPrototype.data = function(value, key) { var i = -1, n = this.length, group, node; if (!arguments.length) { @@ -762,29 +843,26 @@ d3 = function() { function bind(group, groupData) { var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData; if (key) { - var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue; + var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue; for (i = -1; ++i < n; ) { - keyValue = key.call(node = group[i], node.__data__, i); - if (nodeByKeyValue.has(keyValue)) { + if (nodeByKeyValue.has(keyValue = key.call(node = group[i], node.__data__, i))) { exitNodes[i] = node; } else { nodeByKeyValue.set(keyValue, node); } - keyValues.push(keyValue); + keyValues[i] = keyValue; } for (i = -1; ++i < m; ) { - keyValue = key.call(groupData, nodeData = groupData[i], i); - if (node = nodeByKeyValue.get(keyValue)) { + if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) { + enterNodes[i] = d3_selection_dataNode(nodeData); + } else if (node !== true) { updateNodes[i] = node; node.__data__ = nodeData; - } else if (!dataByKeyValue.has(keyValue)) { - enterNodes[i] = d3_selection_dataNode(nodeData); } - dataByKeyValue.set(keyValue, nodeData); - nodeByKeyValue.remove(keyValue); + nodeByKeyValue.set(keyValue, true); } for (i = -1; ++i < n; ) { - if (nodeByKeyValue.has(keyValues[i])) { + if (nodeByKeyValue.get(keyValues[i]) !== true) { exitNodes[i] = group[i]; } } @@ -911,7 +989,7 @@ d3 = function() { }; d3_selectionPrototype.size = function() { var n = 0; - this.each(function() { + d3_selection_each(this, function() { ++n; }); return n; @@ -959,40 +1037,28 @@ d3 = function() { return node; }; } - d3_selectionPrototype.transition = function() { - var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = d3_transitionInherit || { - time: Date.now(), - ease: d3_ease_cubicInOut, - delay: 0, - duration: 250 - }; - for (var j = -1, m = this.length; ++j < m; ) { - subgroups.push(subgroup = []); - for (var group = this[j], i = -1, n = group.length; ++i < n; ) { - if (node = group[i]) d3_transitionNode(node, i, id, transition); - subgroup.push(node); - } - } - return d3_transition(subgroups, id); - }; - d3_selectionPrototype.interrupt = function() { - return this.each(d3_selection_interrupt); - }; - function d3_selection_interrupt() { - var lock = this.__transition__; - if (lock) ++lock.active; - } d3.select = function(node) { - var group = [ typeof node === "string" ? d3_select(node, d3_document) : node ]; - group.parentNode = d3_documentElement; + var group; + if (typeof node === "string") { + group = [ d3_select(node, d3_document) ]; + group.parentNode = d3_document.documentElement; + } else { + group = [ node ]; + group.parentNode = d3_documentElement(node); + } return d3_selection([ group ]); }; d3.selectAll = function(nodes) { - var group = d3_array(typeof nodes === "string" ? d3_selectAll(nodes, d3_document) : nodes); - group.parentNode = d3_documentElement; + var group; + if (typeof nodes === "string") { + group = d3_array(d3_selectAll(nodes, d3_document)); + group.parentNode = d3_document.documentElement; + } else { + group = nodes; + group.parentNode = null; + } return d3_selection([ group ]); }; - var d3_selectionRoot = d3.select(d3_documentElement); d3_selectionPrototype.on = function(type, listener, capture) { var n = arguments.length; if (n < 3) { @@ -1008,7 +1074,7 @@ d3 = function() { }; function d3_selection_on(type, listener, capture) { var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener; - if (i > 0) type = type.substring(0, i); + if (i > 0) type = type.slice(0, i); var filter = d3_selection_onFilters.get(type); if (filter) type = filter, wrap = d3_selection_onFilter; function onRemove() { @@ -1040,9 +1106,11 @@ d3 = function() { mouseenter: "mouseover", mouseleave: "mouseout" }); - d3_selection_onFilters.forEach(function(k) { - if ("on" + k in d3_document) d3_selection_onFilters.remove(k); - }); + if (d3_document) { + d3_selection_onFilters.forEach(function(k) { + if ("on" + k in d3_document) d3_selection_onFilters.remove(k); + }); + } function d3_selection_onListener(listener, argumentz) { return function(e) { var o = d3.event; @@ -1064,20 +1132,23 @@ d3 = function() { } }; } - var d3_event_dragSelect = "onselectstart" in d3_document ? null : d3_vendorSymbol(d3_documentElement.style, "userSelect"), d3_event_dragId = 0; - function d3_event_dragSuppress() { - var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault); + var d3_event_dragSelect, d3_event_dragId = 0; + function d3_event_dragSuppress(node) { + var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window(node)).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault); + if (d3_event_dragSelect == null) { + d3_event_dragSelect = "onselectstart" in node ? false : d3_vendorSymbol(node.style, "userSelect"); + } if (d3_event_dragSelect) { - var style = d3_documentElement.style, select = style[d3_event_dragSelect]; + var style = d3_documentElement(node).style, select = style[d3_event_dragSelect]; style[d3_event_dragSelect] = "none"; } return function(suppressClick) { w.on(name, null); if (d3_event_dragSelect) style[d3_event_dragSelect] = select; if (suppressClick) { - function off() { + var off = function() { w.on(click, null); - } + }; w.on(click, function() { d3_eventPreventDefault(); off(); @@ -1089,34 +1160,52 @@ d3 = function() { d3.mouse = function(container) { return d3_mousePoint(container, d3_eventSource()); }; + var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0; function d3_mousePoint(container, e) { if (e.changedTouches) e = e.changedTouches[0]; var svg = container.ownerSVGElement || container; if (svg.createSVGPoint) { var point = svg.createSVGPoint(); - point.x = e.clientX, point.y = e.clientY; + if (d3_mouse_bug44083 < 0) { + var window = d3_window(container); + if (window.scrollX || window.scrollY) { + svg = d3.select("body").append("svg").style({ + position: "absolute", + top: 0, + left: 0, + margin: 0, + padding: 0, + border: "none" + }, "important"); + var ctm = svg[0][0].getScreenCTM(); + d3_mouse_bug44083 = !(ctm.f || ctm.e); + svg.remove(); + } + } + if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, + point.y = e.clientY; point = point.matrixTransform(container.getScreenCTM().inverse()); return [ point.x, point.y ]; } var rect = container.getBoundingClientRect(); return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ]; } - d3.touches = function(container, touches) { - if (arguments.length < 2) touches = d3_eventSource().touches; - return touches ? d3_array(touches).map(function(touch) { - var point = d3_mousePoint(container, touch); - point.identifier = touch.identifier; - return point; - }) : []; + d3.touch = function(container, touches, identifier) { + if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches; + if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) { + if ((touch = touches[i]).identifier === identifier) { + return d3_mousePoint(container, touch); + } + } }; d3.behavior.drag = function() { - var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_behavior_dragMouseSubject, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_behavior_dragTouchSubject, "touchmove", "touchend"); + var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, "touchmove", "touchend"); function drag() { this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart); } function dragstart(id, position, subject, move, end) { return function() { - var that = this, target = d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject()).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(), position0 = position(parent, dragId); + var that = this, target = d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId); if (origin) { dragOffset = origin.apply(that, arguments); dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ]; @@ -1161,13 +1250,15 @@ d3 = function() { function d3_behavior_dragTouchId() { return d3.event.changedTouches[0].identifier; } - function d3_behavior_dragTouchSubject() { - return d3.event.target; - } - function d3_behavior_dragMouseSubject() { - return d3_window; - } - var π = Math.PI, τ = 2 * π, halfπ = π / 2, ε = 1e-6, ε2 = ε * ε, d3_radians = π / 180, d3_degrees = 180 / π; + d3.touches = function(container, touches) { + if (arguments.length < 2) touches = d3_eventSource().touches; + return touches ? d3_array(touches).map(function(touch) { + var point = d3_mousePoint(container, touch); + point.identifier = touch.identifier; + return point; + }) : []; + }; + var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π; function d3_sgn(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; } @@ -1212,9 +1303,18 @@ d3 = function() { x: 0, y: 0, k: 1 - }, translate0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1; + }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1; + if (!d3_behavior_zoomWheel) { + d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); + }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() { + return d3.event.wheelDelta; + }, "mousewheel") : (d3_behavior_zoomDelta = function() { + return -d3.event.detail; + }, "MozMousePixelScroll"); + } function zoom(g) { - g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on(mousemove, mousewheelreset).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted); + g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted); } zoom.event = function(g) { g.each(function() { @@ -1228,7 +1328,7 @@ d3 = function() { }; zoomstarted(dispatch); }).tween("zoom:zoom", function() { - var dx = size[0], dy = size[1], cx = dx / 2, cy = dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]); + var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]); return function(t) { var l = i(t), k = dx / l[2]; this.__chart__ = view = { @@ -1238,6 +1338,8 @@ d3 = function() { }; zoomed(dispatch); }; + }).each("interrupt.zoom", function() { + zoomended(dispatch); }).each("end.zoom", function() { zoomended(dispatch); }); @@ -1284,6 +1386,11 @@ d3 = function() { size = _ && [ +_[0], +_[1] ]; return zoom; }; + zoom.duration = function(_) { + if (!arguments.length) return duration; + duration = +_; + return zoom; + }; zoom.x = function(z) { if (!arguments.length) return x1; x1 = z; @@ -1320,6 +1427,18 @@ d3 = function() { view.x += p[0] - l[0]; view.y += p[1] - l[1]; } + function zoomTo(that, p, l, k) { + that.__chart__ = { + x: view.x, + y: view.y, + k: view.k + }; + scaleTo(Math.pow(2, k)); + translateTo(center0 = p, l); + that = d3.select(that); + if (duration > 0) that = that.transition().duration(duration); + that.call(zoom.event); + } function rescale() { if (x1) x1.domain(x0.range().map(function(x) { return (x - view.x) / view.k; @@ -1329,7 +1448,7 @@ d3 = function() { }).map(y0.invert)); } function zoomstarted(dispatch) { - dispatch({ + if (!zooming++) dispatch({ type: "zoomstart" }); } @@ -1342,12 +1461,13 @@ d3 = function() { }); } function zoomended(dispatch) { - dispatch({ + if (!--zooming) dispatch({ type: "zoomend" }); + center0 = null; } function mousedowned() { - var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(); + var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that); d3_selection_interrupt.call(that); zoomstarted(dispatch); function moved() { @@ -1356,16 +1476,16 @@ d3 = function() { zoomed(dispatch); } function ended() { - subject.on(mousemove, d3_window === that ? mousewheelreset : null).on(mouseup, null); + subject.on(mousemove, null).on(mouseup, null); dragRestore(dragged && d3.event.target === target); zoomended(dispatch); } } function touchstarted() { - var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that).on(mousedown, null).on(touchstart, started), dragRestore = d3_event_dragSuppress(); - d3_selection_interrupt.call(that); + var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that); started(); zoomstarted(dispatch); + subject.on(mousedown, null).on(touchstart, started); function relocate() { var touches = d3.touches(that); scale0 = view.k; @@ -1385,11 +1505,9 @@ d3 = function() { var touches = relocate(), now = Date.now(); if (touches.length === 1) { if (now - touchtime < 500) { - var p = touches[0], l = locations0[p.identifier]; - scaleTo(view.k * 2); - translateTo(p, l); + var p = touches[0]; + zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1); d3_eventPreventDefault(); - zoomed(dispatch); } touchtime = now; } else if (touches.length > 1) { @@ -1399,6 +1517,7 @@ d3 = function() { } function moved() { var touches = d3.touches(that), p0, l0, p1, l1; + d3_selection_interrupt.call(that); for (var i = 0, n = touches.length; i < n; ++i, l1 = null) { p1 = touches[i]; if (l1 = locations0[p1.identifier]) { @@ -1434,63 +1553,41 @@ d3 = function() { } function mousewheeled() { var dispatch = event.of(this, arguments); - if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this), - zoomstarted(dispatch); + if (mousewheelTimer) clearTimeout(mousewheelTimer); else translate0 = location(center0 = center || d3.mouse(this)), + d3_selection_interrupt.call(this), zoomstarted(dispatch); mousewheelTimer = setTimeout(function() { mousewheelTimer = null; zoomended(dispatch); }, 50); d3_eventPreventDefault(); - var point = center || d3.mouse(this); - if (!translate0) translate0 = location(point); scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k); - translateTo(point, translate0); + translateTo(center0, translate0); zoomed(dispatch); } - function mousewheelreset() { - translate0 = null; - } function dblclicked() { - var dispatch = event.of(this, arguments), p = d3.mouse(this), l = location(p), k = Math.log(view.k) / Math.LN2; - zoomstarted(dispatch); - scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1)); - translateTo(p, l); - zoomed(dispatch); - zoomended(dispatch); + var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2; + zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1); } return d3.rebind(zoom, event, "on"); }; - var d3_behavior_zoomInfinity = [ 0, Infinity ]; - var d3_behavior_zoomDelta, d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() { - return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); - }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() { - return d3.event.wheelDelta; - }, "mousewheel") : (d3_behavior_zoomDelta = function() { - return -d3.event.detail; - }, "MozMousePixelScroll"); - function d3_Color() {} - d3_Color.prototype.toString = function() { + var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel; + d3.color = d3_color; + function d3_color() {} + d3_color.prototype.toString = function() { return this.rgb() + ""; }; - d3.hsl = function(h, s, l) { - return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l); - }; + d3.hsl = d3_hsl; function d3_hsl(h, s, l) { - return new d3_Hsl(h, s, l); + return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l); } - function d3_Hsl(h, s, l) { - this.h = h; - this.s = s; - this.l = l; - } - var d3_hslPrototype = d3_Hsl.prototype = new d3_Color(); + var d3_hslPrototype = d3_hsl.prototype = new d3_color(); d3_hslPrototype.brighter = function(k) { k = Math.pow(.7, arguments.length ? k : 1); - return d3_hsl(this.h, this.s, this.l / k); + return new d3_hsl(this.h, this.s, this.l / k); }; d3_hslPrototype.darker = function(k) { k = Math.pow(.7, arguments.length ? k : 1); - return d3_hsl(this.h, this.s, k * this.l); + return new d3_hsl(this.h, this.s, k * this.l); }; d3_hslPrototype.rgb = function() { return d3_hsl_rgb(this.h, this.s, this.l); @@ -1512,25 +1609,18 @@ d3 = function() { function vv(h) { return Math.round(v(h) * 255); } - return d3_rgb(vv(h + 120), vv(h), vv(h - 120)); + return new d3_rgb(vv(h + 120), vv(h), vv(h - 120)); } - d3.hcl = function(h, c, l) { - return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l); - }; + d3.hcl = d3_hcl; function d3_hcl(h, c, l) { - return new d3_Hcl(h, c, l); - } - function d3_Hcl(h, c, l) { - this.h = h; - this.c = c; - this.l = l; + return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l); } - var d3_hclPrototype = d3_Hcl.prototype = new d3_Color(); + var d3_hclPrototype = d3_hcl.prototype = new d3_color(); d3_hclPrototype.brighter = function(k) { - return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1))); + return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1))); }; d3_hclPrototype.darker = function(k) { - return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1))); + return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1))); }; d3_hclPrototype.rgb = function() { return d3_hcl_lab(this.h, this.c, this.l).rgb(); @@ -1538,27 +1628,20 @@ d3 = function() { function d3_hcl_lab(h, c, l) { if (isNaN(h)) h = 0; if (isNaN(c)) c = 0; - return d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c); + return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c); } - d3.lab = function(l, a, b) { - return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b); - }; + d3.lab = d3_lab; function d3_lab(l, a, b) { - return new d3_Lab(l, a, b); - } - function d3_Lab(l, a, b) { - this.l = l; - this.a = a; - this.b = b; + return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b); } var d3_lab_K = 18; var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883; - var d3_labPrototype = d3_Lab.prototype = new d3_Color(); + var d3_labPrototype = d3_lab.prototype = new d3_color(); d3_labPrototype.brighter = function(k) { - return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); }; d3_labPrototype.darker = function(k) { - return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); + return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b); }; d3_labPrototype.rgb = function() { return d3_lab_rgb(this.l, this.a, this.b); @@ -1568,10 +1651,10 @@ d3 = function() { x = d3_lab_xyz(x) * d3_lab_X; y = d3_lab_xyz(y) * d3_lab_Y; z = d3_lab_xyz(z) * d3_lab_Z; - return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z)); + return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z)); } function d3_lab_hcl(l, a, b) { - return l > 0 ? d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : d3_hcl(NaN, NaN, l); + return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l); } function d3_lab_xyz(x) { return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037; @@ -1582,36 +1665,29 @@ d3 = function() { function d3_xyz_rgb(r) { return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055)); } - d3.rgb = function(r, g, b) { - return arguments.length === 1 ? r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : d3_rgb(~~r, ~~g, ~~b); - }; + d3.rgb = d3_rgb; + function d3_rgb(r, g, b) { + return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b); + } function d3_rgbNumber(value) { - return d3_rgb(value >> 16, value >> 8 & 255, value & 255); + return new d3_rgb(value >> 16, value >> 8 & 255, value & 255); } function d3_rgbString(value) { return d3_rgbNumber(value) + ""; } - function d3_rgb(r, g, b) { - return new d3_Rgb(r, g, b); - } - function d3_Rgb(r, g, b) { - this.r = r; - this.g = g; - this.b = b; - } - var d3_rgbPrototype = d3_Rgb.prototype = new d3_Color(); + var d3_rgbPrototype = d3_rgb.prototype = new d3_color(); d3_rgbPrototype.brighter = function(k) { k = Math.pow(.7, arguments.length ? k : 1); var r = this.r, g = this.g, b = this.b, i = 30; - if (!r && !g && !b) return d3_rgb(i, i, i); + if (!r && !g && !b) return new d3_rgb(i, i, i); if (r && r < i) r = i; if (g && g < i) g = i; if (b && b < i) b = i; - return d3_rgb(Math.min(255, ~~(r / k)), Math.min(255, ~~(g / k)), Math.min(255, ~~(b / k))); + return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k)); }; d3_rgbPrototype.darker = function(k) { k = Math.pow(.7, arguments.length ? k : 1); - return d3_rgb(~~(k * this.r), ~~(k * this.g), ~~(k * this.b)); + return new d3_rgb(k * this.r, k * this.g, k * this.b); }; d3_rgbPrototype.hsl = function() { return d3_rgb_hsl(this.r, this.g, this.b); @@ -1639,8 +1715,10 @@ d3 = function() { } } } - if (color = d3_rgb_names.get(format)) return rgb(color.r, color.g, color.b); - if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.substring(1), 16))) { + if (color = d3_rgb_names.get(format.toLowerCase())) { + return rgb(color.r, color.g, color.b); + } + if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.slice(1), 16))) { if (format.length === 4) { r = (color & 3840) >> 4; r = r >> 4 | r; @@ -1666,7 +1744,7 @@ d3 = function() { h = NaN; s = l > 0 && l < 1 ? 0 : h; } - return d3_hsl(h, s, l); + return new d3_hsl(h, s, l); } function d3_rgb_lab(r, g, b) { r = d3_rgb_xyz(r); @@ -1802,6 +1880,7 @@ d3 = function() { plum: 14524637, powderblue: 11591910, purple: 8388736, + rebeccapurple: 6697881, red: 16711680, rosybrown: 12357519, royalblue: 4286945, @@ -1840,9 +1919,6 @@ d3 = function() { }; } d3.functor = d3_functor; - function d3_identity(d) { - return d; - } d3.xhr = d3_xhrType(d3_identity); function d3_xhrType(response) { return function(url, mimeType, callback) { @@ -1853,13 +1929,13 @@ d3 = function() { } function d3_xhr(url, mimeType, response, callback) { var xhr = {}, dispatch = d3.dispatch("beforesend", "progress", "load", "error"), headers = {}, request = new XMLHttpRequest(), responseType = null; - if (d3_window.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest(); + if (this.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest(); "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() { request.readyState > 3 && respond(); }; function respond() { var status = request.status, result; - if (!status && request.responseText || status >= 200 && status < 300 || status === 304) { + if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) { try { result = response.call(xhr, request); } catch (e) { @@ -1931,6 +2007,10 @@ d3 = function() { callback(error == null ? request : null); } : callback; } + function d3_xhrHasResponse(request) { + var type = request.responseType; + return type && type !== "text" ? request.response : request.responseText; + } d3.dsv = function(delimiter, mimeType) { var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0); function dsv(url, row, callback) { @@ -1983,7 +2063,7 @@ d3 = function() { } else if (c === 10) { eol = true; } - return text.substring(j + 1, i).replace(/""/g, '"'); + return text.slice(j + 1, i).replace(/""/g, '"'); } while (I < N) { var c = text.charCodeAt(I++), k = 1; @@ -1991,9 +2071,9 @@ d3 = function() { eol = true; if (text.charCodeAt(I) === 10) ++I, ++k; } else if (c !== delimiterCode) continue; - return text.substring(j, I - k); + return text.slice(j, I - k); } - return text.substring(j); + return text.slice(j); } while ((t = token()) !== EOF) { var a = []; @@ -2001,7 +2081,7 @@ d3 = function() { a.push(t); t = token(); } - if (f && !(a = f(a, n++))) continue; + if (f && (a = f(a, n++)) == null) continue; rows.push(a); } return rows; @@ -2035,15 +2115,7 @@ d3 = function() { }; d3.csv = d3.dsv(",", "text/csv"); d3.tsv = d3.dsv(" ", "text/tab-separated-values"); - d3.touch = function(container, touches, identifier) { - if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches; - if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) { - if ((touch = touches[i]).identifier === identifier) { - return d3_mousePoint(container, touch); - } - } - }; - var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_active, d3_timer_frame = d3_window[d3_vendorSymbol(d3_window, "requestAnimationFrame")] || function(callback) { + var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_active, d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) { setTimeout(callback, 17); }; d3.timer = function(callback, delay, then) { @@ -2132,21 +2204,22 @@ d3 = function() { }; } function d3_locale_numberFormat(locale) { - var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping ? function(value) { - var i = value.length, t = [], j = 0, g = locale_grouping[0]; + var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) { + var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0; while (i > 0 && g > 0) { + if (length + g + 1 > width) g = Math.max(1, width - length); t.push(value.substring(i -= g, i + g)); + if ((length += g + 1) > width) break; g = locale_grouping[j = (j + 1) % locale_grouping.length]; } return t.reverse().join(locale_thousands); } : d3_identity; return function(specifier) { - var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false; + var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "-", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false, exponent = true; if (precision) precision = +precision.substring(1); if (zfill || fill === "0" && align === "=") { zfill = fill = "0"; align = "="; - if (comma) width -= Math.floor((width - 1) / 4); } switch (type) { case "n": @@ -2173,6 +2246,8 @@ d3 = function() { if (symbol === "#") prefix = "0" + type.toLowerCase(); case "c": + exponent = false; + case "d": integer = true; precision = 0; @@ -2193,7 +2268,7 @@ d3 = function() { return function(value) { var fullSuffix = suffix; if (integer && value % 1) return ""; - var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign; + var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign === "-" ? "" : sign; if (scale < 0) { var unit = d3.formatPrefix(value, precision); value = unit.scale(value); @@ -2202,10 +2277,17 @@ d3 = function() { value *= scale; } value = type(value, precision); - var i = value.lastIndexOf("."), before = i < 0 ? value : value.substring(0, i), after = i < 0 ? "" : locale_decimal + value.substring(i + 1); - if (!zfill && comma) before = formatGroup(before); + var i = value.lastIndexOf("."), before, after; + if (i < 0) { + var j = exponent ? value.lastIndexOf("e") : -1; + if (j < 0) before = value, after = ""; else before = value.substring(0, j), after = value.substring(j); + } else { + before = value.substring(0, i); + after = locale_decimal + value.substring(i + 1); + } + if (!zfill && comma) before = formatGroup(before, Infinity); var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : ""; - if (zcomma) before = formatGroup(padding + before); + if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity); negative += prefix; value = before + after; return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix; @@ -2428,14 +2510,14 @@ d3 = function() { var string = [], i = -1, j = 0, c, p, f; while (++i < n) { if (template.charCodeAt(i) === 37) { - string.push(template.substring(j, i)); + string.push(template.slice(j, i)); if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i); if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p); string.push(c); j = i + 1; } } - string.push(template.substring(j, i)); + string.push(template.slice(j, i)); return string.join(""); } format.parse = function(string) { @@ -2456,7 +2538,7 @@ d3 = function() { date.setFullYear(d.y, 0, 1); date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7); } else date.setFullYear(d.y, d.m, d.d); - date.setHours(d.H + Math.floor(d.Z / 100), d.M + d.Z % 100, d.S, d.L); + date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L); return localZ ? date._ : date; }; format.toString = function() { @@ -2602,22 +2684,22 @@ d3 = function() { }; function d3_time_parseWeekdayAbbrev(date, string, i) { d3_time_dayAbbrevRe.lastIndex = 0; - var n = d3_time_dayAbbrevRe.exec(string.substring(i)); + var n = d3_time_dayAbbrevRe.exec(string.slice(i)); return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; } function d3_time_parseWeekday(date, string, i) { d3_time_dayRe.lastIndex = 0; - var n = d3_time_dayRe.exec(string.substring(i)); + var n = d3_time_dayRe.exec(string.slice(i)); return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; } function d3_time_parseMonthAbbrev(date, string, i) { d3_time_monthAbbrevRe.lastIndex = 0; - var n = d3_time_monthAbbrevRe.exec(string.substring(i)); + var n = d3_time_monthAbbrevRe.exec(string.slice(i)); return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; } function d3_time_parseMonth(date, string, i) { d3_time_monthRe.lastIndex = 0; - var n = d3_time_monthRe.exec(string.substring(i)); + var n = d3_time_monthRe.exec(string.slice(i)); return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; } function d3_time_parseLocaleFull(date, string, i) { @@ -2630,7 +2712,7 @@ d3 = function() { return d3_time_parse(date, d3_time_formats.X.toString(), string, i); } function d3_time_parseAmPm(date, string, i) { - var n = d3_time_periodLookup.get(string.substring(i, i += 2).toLowerCase()); + var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase()); return n == null ? -1 : (date.p = n, i); } return d3_time_format; @@ -2654,31 +2736,31 @@ d3 = function() { } function d3_time_parseWeekdayNumber(date, string, i) { d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.substring(i, i + 1)); + var n = d3_time_numberRe.exec(string.slice(i, i + 1)); return n ? (date.w = +n[0], i + n[0].length) : -1; } function d3_time_parseWeekNumberSunday(date, string, i) { d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.substring(i)); + var n = d3_time_numberRe.exec(string.slice(i)); return n ? (date.U = +n[0], i + n[0].length) : -1; } function d3_time_parseWeekNumberMonday(date, string, i) { d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.substring(i)); + var n = d3_time_numberRe.exec(string.slice(i)); return n ? (date.W = +n[0], i + n[0].length) : -1; } function d3_time_parseFullYear(date, string, i) { d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.substring(i, i + 4)); + var n = d3_time_numberRe.exec(string.slice(i, i + 4)); return n ? (date.y = +n[0], i + n[0].length) : -1; } function d3_time_parseYear(date, string, i) { d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1; } function d3_time_parseZone(date, string, i) { - return /^[+-]\d{4}$/.test(string = string.substring(i, i + 5)) ? (date.Z = -string, + return /^[+-]\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string, i + 5) : -1; } function d3_time_expandYear(d) { @@ -2686,46 +2768,46 @@ d3 = function() { } function d3_time_parseMonthNumber(date, string, i) { d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); return n ? (date.m = n[0] - 1, i + n[0].length) : -1; } function d3_time_parseDay(date, string, i) { d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); return n ? (date.d = +n[0], i + n[0].length) : -1; } function d3_time_parseDayOfYear(date, string, i) { d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.substring(i, i + 3)); + var n = d3_time_numberRe.exec(string.slice(i, i + 3)); return n ? (date.j = +n[0], i + n[0].length) : -1; } function d3_time_parseHour24(date, string, i) { d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); return n ? (date.H = +n[0], i + n[0].length) : -1; } function d3_time_parseMinutes(date, string, i) { d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); return n ? (date.M = +n[0], i + n[0].length) : -1; } function d3_time_parseSeconds(date, string, i) { d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + var n = d3_time_numberRe.exec(string.slice(i, i + 2)); return n ? (date.S = +n[0], i + n[0].length) : -1; } function d3_time_parseMilliseconds(date, string, i) { d3_time_numberRe.lastIndex = 0; - var n = d3_time_numberRe.exec(string.substring(i, i + 3)); + var n = d3_time_numberRe.exec(string.slice(i, i + 3)); return n ? (date.L = +n[0], i + n[0].length) : -1; } function d3_time_zone(d) { - var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(abs(z) / 60), zm = abs(z) % 60; + var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = abs(z) / 60 | 0, zm = abs(z) % 60; return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2); } function d3_time_parseLiteralPercent(date, string, i) { d3_time_percentRe.lastIndex = 0; - var n = d3_time_percentRe.exec(string.substring(i, i + 1)); + var n = d3_time_percentRe.exec(string.slice(i, i + 1)); return n ? i + n[0].length : -1; } function d3_time_formatMulti(formats) { @@ -3133,6 +3215,15 @@ d3 = function() { d3_geo_centroidPointXYZ(x0, y0, z0); } } + function d3_geo_compose(a, b) { + function compose(x, y) { + return x = a(x, y), b(x[0], x[1]); + } + if (a.invert && b.invert) compose.invert = function(x, y) { + return x = b.invert(x, y), x && a.invert(x[0], x[1]); + }; + return compose; + } function d3_true() { return true; } @@ -3333,35 +3424,6 @@ d3 = function() { function d3_geo_clipSort(a, b) { return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]); } - function d3_geo_pointInPolygon(point, polygon) { - var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0; - d3_geo_areaRingSum.reset(); - for (var i = 0, n = polygon.length; i < n; ++i) { - var ring = polygon[i], m = ring.length; - if (!m) continue; - var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1; - while (true) { - if (j === m) j = 0; - point = ring[j]; - var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ; - d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ))); - polarAngle += antimeridian ? dλ + sdλ * τ : dλ; - if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) { - var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point)); - d3_geo_cartesianNormalize(arc); - var intersection = d3_geo_cartesianCross(meridianNormal, arc); - d3_geo_cartesianNormalize(intersection); - var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]); - if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) { - winding += antimeridian ^ dλ >= 0 ? 1 : -1; - } - } - if (!j++) break; - λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point; - } - } - return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ winding & 1; - } var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]); function d3_geo_clipAntimeridianLine(listener) { var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean; @@ -3429,6 +3491,35 @@ d3 = function() { listener.point(to[0], to[1]); } } + function d3_geo_pointInPolygon(point, polygon) { + var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0; + d3_geo_areaRingSum.reset(); + for (var i = 0, n = polygon.length; i < n; ++i) { + var ring = polygon[i], m = ring.length; + if (!m) continue; + var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1; + while (true) { + if (j === m) j = 0; + point = ring[j]; + var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ; + d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ))); + polarAngle += antimeridian ? dλ + sdλ * τ : dλ; + if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) { + var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point)); + d3_geo_cartesianNormalize(arc); + var intersection = d3_geo_cartesianCross(meridianNormal, arc); + d3_geo_cartesianNormalize(intersection); + var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]); + if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) { + winding += antimeridian ^ dλ >= 0 ? 1 : -1; + } + } + if (!j++) break; + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point; + } + } + return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ winding & 1; + } function d3_geo_clipCircle(radius) { var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians); return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]); @@ -3731,15 +3822,6 @@ d3 = function() { return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0]; } } - function d3_geo_compose(a, b) { - function compose(x, y) { - return x = a(x, y), b(x[0], x[1]); - } - if (a.invert && b.invert) compose.invert = function(x, y) { - return x = b.invert(x, y), x && a.invert(x[0], x[1]); - }; - return compose; - } function d3_geo_conic(projectAt) { var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1); p.parallels = function(_) { @@ -4011,7 +4093,7 @@ d3 = function() { result: d3_noop }; function point(x, y) { - context.moveTo(x, y); + context.moveTo(x + pointRadius, y); context.arc(x, y, pointRadius, 0, τ); } function pointLineStart(x, y) { @@ -4697,13 +4779,13 @@ d3 = function() { (d3.geo.transverseMercator = function() { var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate; projection.center = function(_) { - return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ -_[1], _[0] ]); + return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]); }; projection.rotate = function(_) { return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), [ _[0], _[1], _[2] - 90 ]); }; - return projection.rotate([ 0, 0 ]); + return rotate([ 0, 0, 90 ]); }).raw = d3_geo_transverseMercator; d3.geom = {}; function d3_geom_pointX(d) { @@ -5519,11 +5601,11 @@ d3 = function() { } } function insertChild(n, d, x, y, x1, y1, x2, y2) { - var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = x >= sx, bottom = y >= sy, i = (bottom << 1) + right; + var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right; n.leaf = false; n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode()); - if (right) x1 = sx; else x2 = sx; - if (bottom) y1 = sy; else y2 = sy; + if (right) x1 = xm; else x2 = xm; + if (below) y1 = ym; else y2 = ym; insert(n, d, x, y, x1, y1, x2, y2); } var root = d3_geom_quadtreeNode(); @@ -5533,6 +5615,9 @@ d3 = function() { root.visit = function(f) { d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_); }; + root.find = function(point) { + return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_); + }; i = -1; if (x1 == null) { while (++i < n) { @@ -5586,6 +5671,42 @@ d3 = function() { if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2); } } + function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) { + var minDistance2 = Infinity, closestPoint; + (function find(node, x1, y1, x2, y2) { + if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return; + if (point = node.point) { + var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy; + if (distance2 < minDistance2) { + var distance = Math.sqrt(minDistance2 = distance2); + x0 = x - distance, y0 = y - distance; + x3 = x + distance, y3 = y + distance; + closestPoint = point; + } + } + var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym; + for (var i = below << 1 | right, j = i + 4; i < j; ++i) { + if (node = children[i & 3]) switch (i & 3) { + case 0: + find(node, x1, y1, xm, ym); + break; + + case 1: + find(node, xm, y1, x2, ym); + break; + + case 2: + find(node, x1, ym, xm, y2); + break; + + case 3: + find(node, xm, ym, x2, y2); + break; + } + } + })(root, x0, y0, x3, y3); + return closestPoint; + } d3.interpolateRgb = d3_interpolateRgb; function d3_interpolateRgb(a, b) { a = d3.rgb(a); @@ -5617,9 +5738,9 @@ d3 = function() { } d3.interpolateNumber = d3_interpolateNumber; function d3_interpolateNumber(a, b) { - b -= a = +a; + a = +a, b = +b; return function(t) { - return a + b * t; + return a * (1 - t) + b * t; }; } d3.interpolateString = d3_interpolateString; @@ -5628,7 +5749,7 @@ d3 = function() { a = a + "", b = b + ""; while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) { if ((bs = bm.index) > bi) { - bs = b.substring(bi, bs); + bs = b.slice(bi, bs); if (s[i]) s[i] += bs; else s[++i] = bs; } if ((am = am[0]) === (bm = bm[0])) { @@ -5643,7 +5764,7 @@ d3 = function() { bi = d3_interpolate_numberB.lastIndex; } if (bi < b.length) { - bs = b.substring(bi); + bs = b.slice(bi); if (s[i]) s[i] += bs; else s[++i] = bs; } return s.length < 2 ? q[0] ? (b = q[0].x, function(t) { @@ -5664,7 +5785,7 @@ d3 = function() { } d3.interpolators = [ function(a, b) { var t = typeof b; - return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_Color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b); + return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b); } ]; d3.interpolateArray = d3_interpolateArray; function d3_interpolateArray(a, b) { @@ -5713,7 +5834,7 @@ d3 = function() { } }); d3.ease = function(name) { - var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in"; + var i = name.indexOf("-"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : "in"; t = d3_ease.get(t) || d3_ease_default; m = d3_ease_mode.get(m) || d3_identity; return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1)))); @@ -5918,15 +6039,15 @@ d3 = function() { }; } function d3_uninterpolateNumber(a, b) { - b = b - (a = +a) ? 1 / (b - a) : 0; + b = (b -= a = +a) || 1 / b; return function(x) { - return (x - a) * b; + return (x - a) / b; }; } function d3_uninterpolateClamp(a, b) { - b = b - (a = +a) ? 1 / (b - a) : 0; + b = (b -= a = +a) || 1 / b; return function(x) { - return Math.max(0, Math.min(1, (x - a) * b)); + return Math.max(0, Math.min(1, (x - a) / b)); }; } d3.layout = {}; @@ -6269,8 +6390,8 @@ d3 = function() { neighbors[o.target.index].push(o.source); } } - var candidates = neighbors[i], j = -1, m = candidates.length, x; - while (++j < m) if (!isNaN(x = candidates[j][dimension])) return x; + var candidates = neighbors[i], j = -1, l = candidates.length, x; + while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x; return Math.random() * size; } return force.resume(); @@ -6477,49 +6598,50 @@ d3 = function() { return d3_layout_hierarchyRebind(partition, hierarchy); }; d3.layout.pie = function() { - var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ; + var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0; function pie(data) { - var values = data.map(function(d, i) { + var n = data.length, values = data.map(function(d, i) { return +value.call(pie, d, i); - }); - var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle); - var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a) / d3.sum(values); - var index = d3.range(data.length); + }), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), k = (da - n * pa) / d3.sum(values), index = d3.range(n), arcs = [], v; if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) { return values[j] - values[i]; } : function(i, j) { return sort(data[i], data[j]); }); - var arcs = []; index.forEach(function(i) { - var d; arcs[i] = { data: data[i], - value: d = values[i], + value: v = values[i], startAngle: a, - endAngle: a += d * k + endAngle: a += v * k + pa, + padAngle: p }; }); return arcs; } - pie.value = function(x) { + pie.value = function(_) { if (!arguments.length) return value; - value = x; + value = _; return pie; }; - pie.sort = function(x) { + pie.sort = function(_) { if (!arguments.length) return sort; - sort = x; + sort = _; return pie; }; - pie.startAngle = function(x) { + pie.startAngle = function(_) { if (!arguments.length) return startAngle; - startAngle = x; + startAngle = _; return pie; }; - pie.endAngle = function(x) { + pie.endAngle = function(_) { if (!arguments.length) return endAngle; - endAngle = x; + endAngle = _; + return pie; + }; + pie.padAngle = function(_) { + if (!arguments.length) return padAngle; + padAngle = _; return pie; }; return pie; @@ -6528,6 +6650,7 @@ d3 = function() { d3.layout.stack = function() { var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY; function stack(data, index) { + if (!(n = data.length)) return data; var series = data.map(function(d, i) { return values.call(stack, d, i); }); @@ -6540,7 +6663,7 @@ d3 = function() { series = d3.permute(series, orders); points = d3.permute(points, orders); var offsets = offset.call(stack, points, index); - var n = series.length, m = series[0].length, i, j, o; + var m = series[0].length, n, i, j, o; for (j = 0; j < m; ++j) { out.call(stack, series[0][j], o = offsets[j], points[0][j][1]); for (i = 1; i < n; ++i) { @@ -7617,8 +7740,9 @@ d3 = function() { }; scale.rangePoints = function(x, padding) { if (arguments.length < 2) padding = 0; - var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding); - range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step); + var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2, + 0) : (stop - start) / (domain.length - 1 + padding); + range = steps(start + step * padding / 2, step); rangeBand = 0; ranger = { t: "rangePoints", @@ -7626,6 +7750,18 @@ d3 = function() { }; return scale; }; + scale.rangeRoundPoints = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2), + 0) : (stop - start) / (domain.length - 1 + padding) | 0; + range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step); + rangeBand = 0; + ranger = { + t: "rangeRoundPoints", + a: arguments + }; + return scale; + }; scale.rangeBands = function(x, padding, outerPadding) { if (arguments.length < 2) padding = 0; if (arguments.length < 3) outerPadding = padding; @@ -7642,8 +7778,8 @@ d3 = function() { scale.rangeRoundBands = function(x, padding, outerPadding) { if (arguments.length < 2) padding = 0; if (arguments.length < 3) outerPadding = padding; - var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step; - range = steps(start + Math.round(error / 2), step); + var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)); + range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step); if (reverse) range.reverse(); rangeBand = Math.round(step * (1 - padding)); ranger = { @@ -7695,7 +7831,7 @@ d3 = function() { } scale.domain = function(x) { if (!arguments.length) return domain; - domain = x.filter(d3_number).sort(d3_ascending); + domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending); return rescale(); }; scale.range = function(x) { @@ -7800,12 +7936,86 @@ d3 = function() { return identity; } d3.svg = {}; + function d3_zero() { + return 0; + } d3.svg.arc = function() { - var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle; + var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle; function arc() { - var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0, - a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1); - return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z"; + var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1; + if (r1 < r0) rc = r1, r1 = r0, r0 = rc; + if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : "") + "Z"; + var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = []; + if (ap = (+padAngle.apply(this, arguments) || 0) / 2) { + rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments); + if (!cw) p1 *= -1; + if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap)); + if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap)); + } + if (r1) { + x0 = r1 * Math.cos(a0 + p1); + y0 = r1 * Math.sin(a0 + p1); + x1 = r1 * Math.cos(a1 - p1); + y1 = r1 * Math.sin(a1 - p1); + var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1; + if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) { + var h1 = (a0 + a1) / 2; + x0 = r1 * Math.cos(h1); + y0 = r1 * Math.sin(h1); + x1 = y1 = null; + } + } else { + x0 = y0 = 0; + } + if (r0) { + x2 = r0 * Math.cos(a1 - p0); + y2 = r0 * Math.sin(a1 - p0); + x3 = r0 * Math.cos(a0 + p0); + y3 = r0 * Math.sin(a0 + p0); + var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1; + if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) { + var h0 = (a0 + a1) / 2; + x2 = r0 * Math.cos(h0); + y2 = r0 * Math.sin(h0); + x3 = y3 = null; + } + } else { + x2 = y2 = 0; + } + if ((rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) { + cr = r0 < r1 ^ cw ? 0 : 1; + var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + if (x1 != null) { + var rc1 = Math.min(rc, (r1 - lc) / (kc + 1)), t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw); + if (rc === rc1) { + path.push("M", t30[0], "A", rc1, ",", rc1, " 0 0,", cr, " ", t30[1], "A", r1, ",", r1, " 0 ", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), ",", cw, " ", t12[1], "A", rc1, ",", rc1, " 0 0,", cr, " ", t12[0]); + } else { + path.push("M", t30[0], "A", rc1, ",", rc1, " 0 1,", cr, " ", t12[0]); + } + } else { + path.push("M", x0, ",", y0); + } + if (x3 != null) { + var rc0 = Math.min(rc, (r0 - lc) / (kc - 1)), t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw); + if (rc === rc0) { + path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t21[1], "A", r0, ",", r0, " 0 ", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), ",", 1 - cw, " ", t03[1], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]); + } else { + path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]); + } + } else { + path.push("L", x2, ",", y2); + } + } else { + path.push("M", x0, ",", y0); + if (x1 != null) path.push("A", r1, ",", r1, " 0 ", l1, ",", cw, " ", x1, ",", y1); + path.push("L", x2, ",", y2); + if (x3 != null) path.push("A", r0, ",", r0, " 0 ", l0, ",", 1 - cw, " ", x3, ",", y3); + } + path.push("Z"); + return path.join(""); + } + function circleSegment(r1, cw) { + return "M0," + r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + -r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + r1; } arc.innerRadius = function(v) { if (!arguments.length) return innerRadius; @@ -7817,6 +8027,16 @@ d3 = function() { outerRadius = d3_functor(v); return arc; }; + arc.cornerRadius = function(v) { + if (!arguments.length) return cornerRadius; + cornerRadius = d3_functor(v); + return arc; + }; + arc.padRadius = function(v) { + if (!arguments.length) return padRadius; + padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v); + return arc; + }; arc.startAngle = function(v) { if (!arguments.length) return startAngle; startAngle = d3_functor(v); @@ -7827,13 +8047,18 @@ d3 = function() { endAngle = d3_functor(v); return arc; }; + arc.padAngle = function(v) { + if (!arguments.length) return padAngle; + padAngle = d3_functor(v); + return arc; + }; arc.centroid = function() { - var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset; + var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ; return [ Math.cos(a) * r, Math.sin(a) * r ]; }; return arc; }; - var d3_svg_arcOffset = -halfπ, d3_svg_arcMax = τ - ε; + var d3_svg_arcAuto = "auto"; function d3_svg_arcInnerRadius(d) { return d.innerRadius; } @@ -7846,6 +8071,17 @@ d3 = function() { function d3_svg_arcEndAngle(d) { return d.endAngle; } + function d3_svg_arcPadAngle(d) { + return d && d.padAngle; + } + function d3_svg_arcSweep(x0, y0, x1, y1) { + return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1; + } + function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) { + var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(r * r * d2 - D * D), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3; + if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; + return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ]; + } function d3_svg_line(projection) { var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7; function line(data) { @@ -7936,7 +8172,7 @@ d3 = function() { return path.join(""); } function d3_svg_lineCardinalOpen(points, tension) { - return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension)); + return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension)); } function d3_svg_lineCardinalClosed(points, tension) { return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), @@ -8106,7 +8342,7 @@ d3 = function() { while (++i < n) { point = points[i]; r = point[0]; - a = point[1] + d3_svg_arcOffset; + a = point[1] - halfπ; point[0] = r * Math.cos(a); point[1] = r * Math.sin(a); } @@ -8207,7 +8443,7 @@ d3 = function() { return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z"; } function subgroup(self, f, d, i) { - var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset; + var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) - halfπ, a1 = endAngle.call(self, subgroup, i) - halfπ; return { r: r, a0: a0, @@ -8297,7 +8533,7 @@ d3 = function() { }; function d3_svg_diagonalRadialProjection(projection) { return function() { - var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset; + var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ; return [ r * Math.cos(a), r * Math.sin(a) ]; }; } @@ -8353,8 +8589,39 @@ d3 = function() { }); d3.svg.symbolTypes = d3_svg_symbols.keys(); var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians); - function d3_transition(groups, id) { + d3_selectionPrototype.transition = function(name) { + var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name), subgroups = [], subgroup, node, transition = d3_transitionInherit || { + time: Date.now(), + ease: d3_ease_cubicInOut, + delay: 0, + duration: 250 + }; + for (var j = -1, m = this.length; ++j < m; ) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n; ) { + if (node = group[i]) d3_transitionNode(node, i, ns, id, transition); + subgroup.push(node); + } + } + return d3_transition(subgroups, ns, id); + }; + d3_selectionPrototype.interrupt = function(name) { + return this.each(name == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name))); + }; + var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace()); + function d3_selection_interruptNS(ns) { + return function() { + var lock, active; + if ((lock = this[ns]) && (active = lock[lock.active])) { + if (--lock.count) delete lock[lock.active]; else delete this[ns]; + lock.active += .5; + active.event && active.event.interrupt.call(this, this.__data__, active.index); + } + }; + } + function d3_transition(groups, ns, id) { d3_subclass(groups, d3_transitionPrototype); + groups.namespace = ns; groups.id = id; return groups; } @@ -8363,44 +8630,44 @@ d3 = function() { d3_transitionPrototype.empty = d3_selectionPrototype.empty; d3_transitionPrototype.node = d3_selectionPrototype.node; d3_transitionPrototype.size = d3_selectionPrototype.size; - d3.transition = function(selection) { - return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition(); + d3.transition = function(selection, name) { + return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name) : selection : d3.selection().transition(selection); }; d3.transition.prototype = d3_transitionPrototype; d3_transitionPrototype.select = function(selector) { - var id = this.id, subgroups = [], subgroup, subnode, node; + var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node; selector = d3_selection_selector(selector); for (var j = -1, m = this.length; ++j < m; ) { subgroups.push(subgroup = []); for (var group = this[j], i = -1, n = group.length; ++i < n; ) { if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) { if ("__data__" in node) subnode.__data__ = node.__data__; - d3_transitionNode(subnode, i, id, node.__transition__[id]); + d3_transitionNode(subnode, i, ns, id, node[ns][id]); subgroup.push(subnode); } else { subgroup.push(null); } } } - return d3_transition(subgroups, id); + return d3_transition(subgroups, ns, id); }; d3_transitionPrototype.selectAll = function(selector) { - var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition; + var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition; selector = d3_selection_selectorAll(selector); for (var j = -1, m = this.length; ++j < m; ) { for (var group = this[j], i = -1, n = group.length; ++i < n; ) { if (node = group[i]) { - transition = node.__transition__[id]; + transition = node[ns][id]; subnodes = selector.call(node, node.__data__, i, j); subgroups.push(subgroup = []); for (var k = -1, o = subnodes.length; ++k < o; ) { - if (subnode = subnodes[k]) d3_transitionNode(subnode, k, id, transition); + if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition); subgroup.push(subnode); } } } } - return d3_transition(subgroups, id); + return d3_transition(subgroups, ns, id); }; d3_transitionPrototype.filter = function(filter) { var subgroups = [], subgroup, group, node; @@ -8413,23 +8680,23 @@ d3 = function() { } } } - return d3_transition(subgroups, this.id); + return d3_transition(subgroups, this.namespace, this.id); }; d3_transitionPrototype.tween = function(name, tween) { - var id = this.id; - if (arguments.length < 2) return this.node().__transition__[id].tween.get(name); + var id = this.id, ns = this.namespace; + if (arguments.length < 2) return this.node()[ns][id].tween.get(name); return d3_selection_each(this, tween == null ? function(node) { - node.__transition__[id].tween.remove(name); + node[ns][id].tween.remove(name); } : function(node) { - node.__transition__[id].tween.set(name, tween); + node[ns][id].tween.set(name, tween); }); }; function d3_transition_tween(groups, name, value, tween) { - var id = groups.id; + var id = groups.id, ns = groups.namespace; return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) { - node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j))); + node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j))); } : (value = tween(value), function(node) { - node.__transition__[id].tween.set(name, value); + node[ns][id].tween.set(name, value); })); } d3_transitionPrototype.attr = function(nameNS, value) { @@ -8493,7 +8760,7 @@ d3 = function() { } function styleString(b) { return b == null ? styleNull : (b += "", function() { - var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i; + var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i; return a !== b && (i = d3_interpolate(a, b), function(t) { this.style.setProperty(name, i(t), priority); }); @@ -8504,7 +8771,7 @@ d3 = function() { d3_transitionPrototype.styleTween = function(name, tween, priority) { if (arguments.length < 3) priority = ""; function styleTween(d, i) { - var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name)); + var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name)); return f && function(t) { this.style.setProperty(name, f(t), priority); }; @@ -8521,73 +8788,84 @@ d3 = function() { }; } d3_transitionPrototype.remove = function() { + var ns = this.namespace; return this.each("end.transition", function() { var p; - if (this.__transition__.count < 2 && (p = this.parentNode)) p.removeChild(this); + if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this); }); }; d3_transitionPrototype.ease = function(value) { - var id = this.id; - if (arguments.length < 1) return this.node().__transition__[id].ease; + var id = this.id, ns = this.namespace; + if (arguments.length < 1) return this.node()[ns][id].ease; if (typeof value !== "function") value = d3.ease.apply(d3, arguments); return d3_selection_each(this, function(node) { - node.__transition__[id].ease = value; + node[ns][id].ease = value; }); }; d3_transitionPrototype.delay = function(value) { - var id = this.id; - if (arguments.length < 1) return this.node().__transition__[id].delay; + var id = this.id, ns = this.namespace; + if (arguments.length < 1) return this.node()[ns][id].delay; return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { - node.__transition__[id].delay = +value.call(node, node.__data__, i, j); + node[ns][id].delay = +value.call(node, node.__data__, i, j); } : (value = +value, function(node) { - node.__transition__[id].delay = value; + node[ns][id].delay = value; })); }; d3_transitionPrototype.duration = function(value) { - var id = this.id; - if (arguments.length < 1) return this.node().__transition__[id].duration; + var id = this.id, ns = this.namespace; + if (arguments.length < 1) return this.node()[ns][id].duration; return d3_selection_each(this, typeof value === "function" ? function(node, i, j) { - node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j)); + node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j)); } : (value = Math.max(1, value), function(node) { - node.__transition__[id].duration = value; + node[ns][id].duration = value; })); }; d3_transitionPrototype.each = function(type, listener) { - var id = this.id; + var id = this.id, ns = this.namespace; if (arguments.length < 2) { var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId; - d3_transitionInheritId = id; - d3_selection_each(this, function(node, i, j) { - d3_transitionInherit = node.__transition__[id]; - type.call(node, node.__data__, i, j); - }); - d3_transitionInherit = inherit; - d3_transitionInheritId = inheritId; + try { + d3_transitionInheritId = id; + d3_selection_each(this, function(node, i, j) { + d3_transitionInherit = node[ns][id]; + type.call(node, node.__data__, i, j); + }); + } finally { + d3_transitionInherit = inherit; + d3_transitionInheritId = inheritId; + } } else { d3_selection_each(this, function(node) { - var transition = node.__transition__[id]; - (transition.event || (transition.event = d3.dispatch("start", "end"))).on(type, listener); + var transition = node[ns][id]; + (transition.event || (transition.event = d3.dispatch("start", "end", "interrupt"))).on(type, listener); }); } return this; }; d3_transitionPrototype.transition = function() { - var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition; + var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition; for (var j = 0, m = this.length; j < m; j++) { subgroups.push(subgroup = []); for (var group = this[j], i = 0, n = group.length; i < n; i++) { if (node = group[i]) { - transition = Object.create(node.__transition__[id0]); - transition.delay += transition.duration; - d3_transitionNode(node, i, id1, transition); + transition = node[ns][id0]; + d3_transitionNode(node, i, ns, id1, { + time: transition.time, + ease: transition.ease, + delay: transition.delay + transition.duration, + duration: transition.duration + }); } subgroup.push(node); } } - return d3_transition(subgroups, id1); + return d3_transition(subgroups, ns, id1); }; - function d3_transitionNode(node, i, id, inherit) { - var lock = node.__transition__ || (node.__transition__ = { + function d3_transitionNamespace(name) { + return name == null ? "__transition__" : "__transition_" + name + "__"; + } + function d3_transitionNode(node, i, ns, id, inherit) { + var lock = node[ns] || (node[ns] = { active: 0, count: 0 }), transition = lock[id]; @@ -8596,43 +8874,53 @@ d3 = function() { transition = lock[id] = { tween: new d3_Map(), time: time, - ease: inherit.ease, delay: inherit.delay, - duration: inherit.duration + duration: inherit.duration, + ease: inherit.ease, + index: i }; + inherit = null; ++lock.count; d3.timer(function(elapsed) { - var d = node.__data__, ease = transition.ease, delay = transition.delay, duration = transition.duration, timer = d3_timer_active, tweened = []; + var delay = transition.delay, duration, ease, timer = d3_timer_active, tweened = []; timer.t = delay + time; if (delay <= elapsed) return start(elapsed - delay); timer.c = start; function start(elapsed) { if (lock.active > id) return stop(); + var active = lock[lock.active]; + if (active) { + --lock.count; + delete lock[lock.active]; + active.event && active.event.interrupt.call(node, node.__data__, active.index); + } lock.active = id; - transition.event && transition.event.start.call(node, d, i); + transition.event && transition.event.start.call(node, node.__data__, i); transition.tween.forEach(function(key, value) { - if (value = value.call(node, d, i)) { + if (value = value.call(node, node.__data__, i)) { tweened.push(value); } }); + ease = transition.ease; + duration = transition.duration; d3.timer(function() { timer.c = tick(elapsed || 1) ? d3_true : tick; return 1; }, 0, time); } function tick(elapsed) { - if (lock.active !== id) return stop(); + if (lock.active !== id) return 1; var t = elapsed / duration, e = ease(t), n = tweened.length; while (n > 0) { tweened[--n].call(node, e); } if (t >= 1) { - transition.event && transition.event.end.call(node, d, i); + transition.event && transition.event.end.call(node, node.__data__, i); return stop(); } } function stop() { - if (--lock.count) delete lock[id]; else delete node.__transition__; + if (--lock.count) delete lock[id]; else delete node[ns]; return 1; } }, 0, time); @@ -8644,61 +8932,25 @@ d3 = function() { g.each(function() { var g = d3.select(this); var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy(); - var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickTransform; + var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform; var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"), d3.transition(path)); tickEnter.append("line"); tickEnter.append("text"); - var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"); - switch (orient) { - case "bottom": - { - tickTransform = d3_svg_axisX; - lineEnter.attr("y2", innerTickSize); - textEnter.attr("y", Math.max(innerTickSize, 0) + tickPadding); - lineUpdate.attr("x2", 0).attr("y2", innerTickSize); - textUpdate.attr("x", 0).attr("y", Math.max(innerTickSize, 0) + tickPadding); - text.attr("dy", ".71em").style("text-anchor", "middle"); - pathUpdate.attr("d", "M" + range[0] + "," + outerTickSize + "V0H" + range[1] + "V" + outerTickSize); - break; - } - - case "top": - { - tickTransform = d3_svg_axisX; - lineEnter.attr("y2", -innerTickSize); - textEnter.attr("y", -(Math.max(innerTickSize, 0) + tickPadding)); - lineUpdate.attr("x2", 0).attr("y2", -innerTickSize); - textUpdate.attr("x", 0).attr("y", -(Math.max(innerTickSize, 0) + tickPadding)); - text.attr("dy", "0em").style("text-anchor", "middle"); - pathUpdate.attr("d", "M" + range[0] + "," + -outerTickSize + "V0H" + range[1] + "V" + -outerTickSize); - break; - } - - case "left": - { - tickTransform = d3_svg_axisY; - lineEnter.attr("x2", -innerTickSize); - textEnter.attr("x", -(Math.max(innerTickSize, 0) + tickPadding)); - lineUpdate.attr("x2", -innerTickSize).attr("y2", 0); - textUpdate.attr("x", -(Math.max(innerTickSize, 0) + tickPadding)).attr("y", 0); - text.attr("dy", ".32em").style("text-anchor", "end"); - pathUpdate.attr("d", "M" + -outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + -outerTickSize); - break; - } - - case "right": - { - tickTransform = d3_svg_axisY; - lineEnter.attr("x2", innerTickSize); - textEnter.attr("x", Math.max(innerTickSize, 0) + tickPadding); - lineUpdate.attr("x2", innerTickSize).attr("y2", 0); - textUpdate.attr("x", Math.max(innerTickSize, 0) + tickPadding).attr("y", 0); - text.attr("dy", ".32em").style("text-anchor", "start"); - pathUpdate.attr("d", "M" + outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + outerTickSize); - break; - } - } + var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"), sign = orient === "top" || orient === "left" ? -1 : 1, x1, x2, y1, y2; + if (orient === "bottom" || orient === "top") { + tickTransform = d3_svg_axisX, x1 = "x", y1 = "y", x2 = "x2", y2 = "y2"; + text.attr("dy", sign < 0 ? "0em" : ".71em").style("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + sign * outerTickSize + "V0H" + range[1] + "V" + sign * outerTickSize); + } else { + tickTransform = d3_svg_axisY, x1 = "y", y1 = "x", x2 = "y2", y2 = "x2"; + text.attr("dy", ".32em").style("text-anchor", sign < 0 ? "end" : "start"); + pathUpdate.attr("d", "M" + sign * outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + sign * outerTickSize); + } + lineEnter.attr(y2, sign * innerTickSize); + textEnter.attr(y1, sign * tickSpacing); + lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize); + textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing); if (scale1.rangeBand) { var x = scale1, dx = x.rangeBand() / 2; scale0 = scale1 = function(d) { @@ -8707,10 +8959,10 @@ d3 = function() { } else if (scale0.rangeBand) { scale0 = scale1; } else { - tickExit.call(tickTransform, scale1); + tickExit.call(tickTransform, scale1, scale0); } - tickEnter.call(tickTransform, scale0); - tickUpdate.call(tickTransform, scale1); + tickEnter.call(tickTransform, scale0, scale1); + tickUpdate.call(tickTransform, scale1, scale1); }); } axis.scale = function(x) { @@ -8771,14 +9023,16 @@ d3 = function() { bottom: 1, left: 1 }; - function d3_svg_axisX(selection, x) { + function d3_svg_axisX(selection, x0, x1) { selection.attr("transform", function(d) { - return "translate(" + x(d) + ",0)"; + var v0 = x0(d); + return "translate(" + (isFinite(v0) ? v0 : x1(d)) + ",0)"; }); } - function d3_svg_axisY(selection, y) { + function d3_svg_axisY(selection, y0, y1) { selection.attr("transform", function(d) { - return "translate(0," + y(d) + ")"; + var v0 = y0(d); + return "translate(0," + (isFinite(v0) ? v0 : y1(d)) + ")"; }); } d3.svg.brush = function() { @@ -8883,8 +9137,8 @@ d3 = function() { g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]); } function brushstart() { - var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(), center, origin = d3.mouse(target), offset; - var w = d3.select(d3_window).on("keydown.brush", keydown).on("keyup.brush", keyup); + var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset; + var w = d3.select(d3_window(target)).on("keydown.brush", keydown).on("keyup.brush", keyup); if (d3.event.changedTouches) { w.on("touchmove.brush", brushmove).on("touchend.brush", brushend); } else { @@ -9245,5 +9499,6 @@ d3 = function() { d3.xml = d3_xhrType(function(request) { return request.responseXML; }); - return d3; + if (typeof define === "function" && define.amd) define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; + this.d3 = d3; }(); \ No newline at end of file diff --git a/client/galaxy/scripts/libs/jquery/jquery.js b/client/galaxy/scripts/libs/jquery/jquery.js index 1c3aa8228f35..6feb11086f45 100644 --- a/client/galaxy/scripts/libs/jquery/jquery.js +++ b/client/galaxy/scripts/libs/jquery/jquery.js @@ -1,5 +1,5 @@ /*! - * jQuery JavaScript Library v1.11.2 + * jQuery JavaScript Library v1.11.3 * http://jquery.com/ * * Includes Sizzle.js @@ -9,7 +9,7 @@ * Released under the MIT license * http://jquery.org/license * - * Date: 2014-12-17T15:27Z + * Date: 2015-04-28T16:19Z */ (function( global, factory ) { @@ -64,7 +64,7 @@ var support = {}; var - version = "1.11.2", + version = "1.11.3", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -569,7 +569,12 @@ jQuery.each("Boolean Number String Function Array Date RegExp Object Error".spli }); function isArraylike( obj ) { - var length = obj.length, + + // Support: iOS 8.2 (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = "length" in obj && obj.length, type = jQuery.type( obj ); if ( type === "function" || jQuery.isWindow( obj ) ) { diff --git a/client/galaxy/scripts/libs/raven.js b/client/galaxy/scripts/libs/raven.js index 2a6718a83d26..b88187562205 100644 --- a/client/galaxy/scripts/libs/raven.js +++ b/client/galaxy/scripts/libs/raven.js @@ -1,4 +1,4 @@ -/*! Raven.js 1.1.17 (aa35178) | github.com/getsentry/raven-js */ +/*! Raven.js 1.1.18 (8ad15bc) | github.com/getsentry/raven-js */ /* * Includes TraceKit @@ -1093,7 +1093,7 @@ var _Raven = window.Raven, * @this {Raven} */ var Raven = { - VERSION: '1.1.17', + VERSION: '1.1.18', debug: true, @@ -1743,7 +1743,7 @@ function send(data) { // Send along our own collected metadata with extra data.extra = objectMerge({ - 'session:duration': now() - startTime, + 'session:duration': now() - startTime }, data.extra); // If there are no tags/extra, strip the key from the payload alltogther. diff --git a/client/galaxy/scripts/libs/require.js b/client/galaxy/scripts/libs/require.js index 52c2b076b7b0..babfa9ad3904 100644 --- a/client/galaxy/scripts/libs/require.js +++ b/client/galaxy/scripts/libs/require.js @@ -1,5 +1,5 @@ /** vim: et:ts=4:sw=4:sts=4 - * @license RequireJS 2.1.8 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved. + * @license RequireJS 2.1.17 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http://github.com/jrburke/requirejs for details */ @@ -12,7 +12,7 @@ var requirejs, require, define; (function (global) { var req, s, head, baseElement, dataMain, src, interactiveScript, currentlyAddingScript, mainScript, subPath, - version = '2.1.8', + version = '2.1.17', commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg, cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g, jsSuffixRegExp = /\.js$/, @@ -22,7 +22,7 @@ var requirejs, require, define; hasOwn = op.hasOwnProperty, ap = Array.prototype, apsp = ap.splice, - isBrowser = !!(typeof window !== 'undefined' && navigator && window.document), + isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document), isWebWorker = !isBrowser && typeof importScripts !== 'undefined', //PS3 indicates loaded and complete, but need to wait for complete //specifically. Sequence is 'loading', 'loaded', execution, @@ -108,7 +108,10 @@ var requirejs, require, define; if (source) { eachProp(source, function (value, prop) { if (force || !hasProp(target, prop)) { - if (deepStringMixin && typeof value !== 'string') { + if (deepStringMixin && typeof value === 'object' && value && + !isArray(value) && !isFunction(value) && + !(value instanceof RegExp)) { + if (!target[prop]) { target[prop] = {}; } @@ -138,7 +141,7 @@ var requirejs, require, define; throw err; } - //Allow getting a global that expressed in + //Allow getting a global that is expressed in //dot notation, like 'a.b.c'. function getGlobal(value) { if (!value) { @@ -177,7 +180,7 @@ var requirejs, require, define; if (typeof requirejs !== 'undefined') { if (isFunction(requirejs)) { - //Do not overwrite and existing requirejs instance. + //Do not overwrite an existing requirejs instance. return; } cfg = requirejs; @@ -201,6 +204,7 @@ var requirejs, require, define; waitSeconds: 7, baseUrl: './', paths: {}, + bundles: {}, pkgs: {}, shim: {}, config: {} @@ -214,6 +218,7 @@ var requirejs, require, define; defQueue = [], defined = {}, urlFetched = {}, + bundlesMap = {}, requireCounter = 1, unnormalizedCounter = 1; @@ -228,20 +233,19 @@ var requirejs, require, define; */ function trimDots(ary) { var i, part; - for (i = 0; ary[i]; i += 1) { + for (i = 0; i < ary.length; i++) { part = ary[i]; if (part === '.') { ary.splice(i, 1); i -= 1; } else if (part === '..') { - if (i === 1 && (ary[2] === '..' || ary[0] === '..')) { - //End of the line. Keep at least one non-dot - //path segment at the front so it can be mapped - //correctly to disk. Otherwise, there is likely - //no path mapping for a path starting with '..'. - //This can still fail, but catches the most reasonable - //uses of .. - break; + // If at the start, or previous value is still .., + // keep them so that when converted to a path it may + // still work when converted to a path, even though + // as an ID it is less than ideal. In larger point + // releases, may be better to just kick out an error. + if (i === 0 || (i === 1 && ary[2] === '..') || ary[i - 1] === '..') { + continue; } else if (i > 0) { ary.splice(i - 1, 2); i -= 2; @@ -261,54 +265,45 @@ var requirejs, require, define; * @returns {String} normalized name */ function normalize(name, baseName, applyMap) { - var pkgName, pkgConfig, mapValue, nameParts, i, j, nameSegment, - foundMap, foundI, foundStarMap, starI, - baseParts = baseName && baseName.split('/'), - normalizedBaseParts = baseParts, + var pkgMain, mapValue, nameParts, i, j, nameSegment, lastIndex, + foundMap, foundI, foundStarMap, starI, normalizedBaseParts, + baseParts = (baseName && baseName.split('/')), map = config.map, starMap = map && map['*']; //Adjust any relative paths. - if (name && name.charAt(0) === '.') { - //If have a base name, try to normalize against it, - //otherwise, assume it is a top-level require that will - //be relative to baseUrl in the end. - if (baseName) { - if (getOwn(config.pkgs, baseName)) { - //If the baseName is a package name, then just treat it as one - //name to concat the name with. - normalizedBaseParts = baseParts = [baseName]; - } else { - //Convert baseName to array, and lop off the last part, - //so that . matches that 'directory' and not name of the baseName's - //module. For instance, baseName of 'one/two/three', maps to - //'one/two/three.js', but we want the directory, 'one/two' for - //this normalization. - normalizedBaseParts = baseParts.slice(0, baseParts.length - 1); - } - - name = normalizedBaseParts.concat(name.split('/')); - trimDots(name); + if (name) { + name = name.split('/'); + lastIndex = name.length - 1; + + // If wanting node ID compatibility, strip .js from end + // of IDs. Have to do this here, and not in nameToUrl + // because node allows either .js or non .js to map + // to same file. + if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { + name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, ''); + } - //Some use of packages may use a . path to reference the - //'main' module name, so normalize for that. - pkgConfig = getOwn(config.pkgs, (pkgName = name[0])); - name = name.join('/'); - if (pkgConfig && name === pkgName + '/' + pkgConfig.main) { - name = pkgName; - } - } else if (name.indexOf('./') === 0) { - // No baseName, so this is ID is resolved relative - // to baseUrl, pull off the leading dot. - name = name.substring(2); + // Starts with a '.' so need the baseName + if (name[0].charAt(0) === '.' && baseParts) { + //Convert baseName to array, and lop off the last part, + //so that . matches that 'directory' and not name of the baseName's + //module. For instance, baseName of 'one/two/three', maps to + //'one/two/three.js', but we want the directory, 'one/two' for + //this normalization. + normalizedBaseParts = baseParts.slice(0, baseParts.length - 1); + name = normalizedBaseParts.concat(name); } + + trimDots(name); + name = name.join('/'); } //Apply map config if available. if (applyMap && map && (baseParts || starMap)) { nameParts = name.split('/'); - for (i = nameParts.length; i > 0; i -= 1) { + outerLoop: for (i = nameParts.length; i > 0; i -= 1) { nameSegment = nameParts.slice(0, i).join('/'); if (baseParts) { @@ -325,16 +320,12 @@ var requirejs, require, define; //Match, update name to the new value. foundMap = mapValue; foundI = i; - break; + break outerLoop; } } } } - if (foundMap) { - break; - } - //Check for a star map match, but just hold on to it, //if there is a shorter segment match later in a matching //config, then favor over this star map. @@ -355,7 +346,11 @@ var requirejs, require, define; } } - return name; + // If the name points to a package's name, use + // the package main instead. + pkgMain = getOwn(config.pkgs, name); + + return pkgMain ? pkgMain : name; } function removeScript(name) { @@ -373,12 +368,17 @@ var requirejs, require, define; function hasPathFallback(id) { var pathConfig = getOwn(config.paths, id); if (pathConfig && isArray(pathConfig) && pathConfig.length > 1) { - removeScript(id); //Pop off the first array value, since it failed, and //retry pathConfig.shift(); context.require.undef(id); - context.require([id]); + + //Custom require that does not do map translation, since + //ID is "absolute", already mapped/resolved. + context.makeRequire(null, { + skipMap: true + })([id]); + return true; } } @@ -444,7 +444,16 @@ var requirejs, require, define; return normalize(name, parentName, applyMap); }); } else { - normalizedName = normalize(name, parentName, applyMap); + // If nested plugin references, then do not try to + // normalize, as it will not normalize correctly. This + // places a restriction on resourceIds, and the longer + // term solution is not to normalize until plugins are + // loaded and all normalizations to allow for async + // loading of a loader plugin. But for now, fixes the + // common uses. Details in #1131 + normalizedName = name.indexOf('!') === -1 ? + normalize(name, parentName, applyMap) : + name; } } else { //A regular module. @@ -549,7 +558,7 @@ var requirejs, require, define; //local var ref to defQueue, so cannot just reassign the one //on context. apsp.apply(defQueue, - [defQueue.length - 1, 0].concat(globalDefQueue)); + [defQueue.length, 0].concat(globalDefQueue)); globalDefQueue = []; } } @@ -566,7 +575,7 @@ var requirejs, require, define; mod.usingExports = true; if (mod.map.isDefine) { if (mod.exports) { - return mod.exports; + return (defined[mod.map.id] = mod.exports); } else { return (mod.exports = defined[mod.map.id] = {}); } @@ -580,15 +589,9 @@ var requirejs, require, define; id: mod.map.id, uri: mod.map.url, config: function () { - var c, - pkg = getOwn(config.pkgs, mod.map.id); - // For packages, only support config targeted - // at the main module. - c = pkg ? getOwn(config.config, mod.map.id + '/' + pkg.main) : - getOwn(config.config, mod.map.id); - return c || {}; + return getOwn(config.config, mod.map.id) || {}; }, - exports: defined[mod.map.id] + exports: mod.exports || (mod.exports = {}) }); } } @@ -629,7 +632,7 @@ var requirejs, require, define; } function checkLoaded() { - var map, modId, err, usingPathFallback, + var err, usingPathFallback, waitInterval = config.waitSeconds * 1000, //It is possible to disable the wait interval by using waitSeconds of 0. expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(), @@ -647,8 +650,8 @@ var requirejs, require, define; //Figure out the state of all the modules. eachProp(enabledRegistry, function (mod) { - map = mod.map; - modId = map.id; + var map = mod.map, + modId = map.id; //Skip things that are not enabled or in error state. if (!mod.enabled) { @@ -871,17 +874,14 @@ var requirejs, require, define; exports = context.execCb(id, factory, depExports, exports); } - if (this.map.isDefine) { - //If setting exports via 'module' is in play, - //favor that over return value and exports. After that, - //favor a non-undefined return value over exports use. + // Favor return value over exports. If node/cjs in play, + // then will not have a return value anyway. Favor + // module.exports assignment over exports object. + if (this.map.isDefine && exports === undefined) { cjsModule = this.module; - if (cjsModule && - cjsModule.exports !== undefined && - //Make sure it is not already the exports value - cjsModule.exports !== this.exports) { + if (cjsModule) { exports = cjsModule.exports; - } else if (exports === undefined && this.usingExports) { + } else if (this.usingExports) { //exports already set the defined value. exports = this.exports; } @@ -941,6 +941,7 @@ var requirejs, require, define; on(pluginMap, 'defined', bind(this, function (plugin) { var load, normalizedMap, normalizedMod, + bundleId = getOwn(bundlesMap, this.map.id), name = this.map.name, parentName = this.map.parentMap ? this.map.parentMap.name : null, localRequire = context.makeRequire(map.parentMap, { @@ -986,6 +987,14 @@ var requirejs, require, define; return; } + //If a paths config, then just load that file instead to + //resolve the plugin, as it is built into that paths layer. + if (bundleId) { + this.map.url = context.nameToUrl(bundleId); + this.load(); + return; + } + load = bind(this, function (value) { this.init([], function () { return value; }, null, { enabled: true @@ -1114,6 +1123,13 @@ var requirejs, require, define; if (this.errback) { on(depMap, 'error', bind(this, this.errback)); + } else if (this.events.error) { + // No direct errback on this module, but something + // else is listening for errors, so be sure to + // propagate the error correctly. + on(depMap, 'error', bind(this, function(err) { + this.emit('error', err); + })); } } @@ -1250,31 +1266,38 @@ var requirejs, require, define; } } - //Save off the paths and packages since they require special processing, + //Save off the paths since they require special processing, //they are additive. - var pkgs = config.pkgs, - shim = config.shim, + var shim = config.shim, objs = { paths: true, + bundles: true, config: true, map: true }; eachProp(cfg, function (value, prop) { if (objs[prop]) { - if (prop === 'map') { - if (!config.map) { - config.map = {}; - } - mixin(config[prop], value, true, true); - } else { - mixin(config[prop], value, true); + if (!config[prop]) { + config[prop] = {}; } + mixin(config[prop], value, true, true); } else { config[prop] = value; } }); + //Reverse map the bundles + if (cfg.bundles) { + eachProp(cfg.bundles, function (value, prop) { + each(value, function (v) { + if (v !== prop) { + bundlesMap[v] = prop; + } + }); + }); + } + //Merge shim if (cfg.shim) { eachProp(cfg.shim, function (value, id) { @@ -1295,29 +1318,25 @@ var requirejs, require, define; //Adjust packages if necessary. if (cfg.packages) { each(cfg.packages, function (pkgObj) { - var location; + var location, name; pkgObj = typeof pkgObj === 'string' ? { name: pkgObj } : pkgObj; + + name = pkgObj.name; location = pkgObj.location; + if (location) { + config.paths[name] = pkgObj.location; + } - //Create a brand new object on pkgs, since currentPackages can - //be passed in again, and config.pkgs is the internal transformed - //state for all package configs. - pkgs[pkgObj.name] = { - name: pkgObj.name, - location: location || pkgObj.name, - //Remove leading dot in main, so main paths are normalized, - //and remove any trailing .js, since different package - //envs have different conventions: some use a module name, - //some use a file name. - main: (pkgObj.main || 'main') - .replace(currDirRegExp, '') - .replace(jsSuffixRegExp, '') - }; + //Save pointer to main module ID for pkg name. + //Remove leading dot in main, so main paths are normalized, + //and remove any trailing .js, since different package + //envs have different conventions: some use a module name, + //some use a file name. + config.pkgs[name] = pkgObj.name + '/' + (pkgObj.main || 'main') + .replace(currDirRegExp, '') + .replace(jsSuffixRegExp, ''); }); - - //Done with modifications, assing packages back to context config - config.pkgs = pkgs; } //If there are any "waiting to execute" modules in the registry, @@ -1464,10 +1483,21 @@ var requirejs, require, define; var map = makeModuleMap(id, relMap, true), mod = getOwn(registry, id); + removeScript(id); + delete defined[id]; delete urlFetched[map.url]; delete undefEvents[id]; + //Clean queued defines too. Go backwards + //in array so that the splices do not + //mess up the iteration. + eachReverse(defQueue, function(args, i) { + if(args[0] === id) { + defQueue.splice(i, 1); + } + }); + if (mod) { //Hold on to listeners in case the //module will be attempted to be reloaded @@ -1487,7 +1517,7 @@ var requirejs, require, define; /** * Called to enable a module if it is still in the registry * awaiting enablement. A second arg, parent, the parent module, - * is passed in for context, when this method is overriden by + * is passed in for context, when this method is overridden by * the optimizer. Not shown here to keep code compact. */ enable: function (depMap) { @@ -1561,8 +1591,19 @@ var requirejs, require, define; * internal API, not a public one. Use toUrl for the public API. */ nameToUrl: function (moduleName, ext, skipExt) { - var paths, pkgs, pkg, pkgPath, syms, i, parentModule, url, - parentPath; + var paths, syms, i, parentModule, url, + parentPath, bundleId, + pkgMain = getOwn(config.pkgs, moduleName); + + if (pkgMain) { + moduleName = pkgMain; + } + + bundleId = getOwn(bundlesMap, moduleName); + + if (bundleId) { + return context.nameToUrl(bundleId, ext, skipExt); + } //If a colon is in the URL, it indicates a protocol is used and it is just //an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?) @@ -1576,7 +1617,6 @@ var requirejs, require, define; } else { //A module that needs to be converted to a path. paths = config.paths; - pkgs = config.pkgs; syms = moduleName.split('/'); //For each module name segment, see if there is a path @@ -1584,7 +1624,7 @@ var requirejs, require, define; //and work up from it. for (i = syms.length; i > 0; i -= 1) { parentModule = syms.slice(0, i).join('/'); - pkg = getOwn(pkgs, parentModule); + parentPath = getOwn(paths, parentModule); if (parentPath) { //If an array, it means there are a few choices, @@ -1594,22 +1634,12 @@ var requirejs, require, define; } syms.splice(0, i, parentPath); break; - } else if (pkg) { - //If module name is just the package name, then looking - //for the main module. - if (moduleName === pkg.name) { - pkgPath = pkg.location + '/' + pkg.main; - } else { - pkgPath = pkg.location; - } - syms.splice(0, i, pkgPath); - break; } } //Join the path parts together, then figure out if baseUrl is needed. url = syms.join('/'); - url += (ext || (/\?/.test(url) || skipExt ? '' : '.js')); + url += (ext || (/^data\:|\?/.test(url) || skipExt ? '' : '.js')); url = (url.charAt(0) === '/' || url.match(/^[\w\+\.\-]+:/) ? '' : config.baseUrl) + url; } @@ -1918,7 +1948,7 @@ var requirejs, require, define; } //Look for a data-main script attribute, which could also adjust the baseUrl. - if (isBrowser) { + if (isBrowser && !cfg.skipDataMain) { //Figure out baseUrl. Get it from the script tag with require.js in it. eachReverse(scripts(), function (script) { //Set the 'head' where we can append children by diff --git a/client/galaxy/scripts/mvc/form/form-data.js b/client/galaxy/scripts/mvc/form/form-data.js index 0562d97fbf9e..cc7f7dceabe2 100644 --- a/client/galaxy/scripts/mvc/form/form-data.js +++ b/client/galaxy/scripts/mvc/form/form-data.js @@ -98,7 +98,7 @@ return Backbone.Model.extend({ break; // handle sections case 'section': - convert(job_input_id, node); + convert(!input.flat && job_input_id || '', node); break; default: // get field diff --git a/client/galaxy/scripts/mvc/history/history-panel-annotated.js b/client/galaxy/scripts/mvc/history/history-panel-annotated.js index 015ecd4e231e..67a2ec01e476 100644 --- a/client/galaxy/scripts/mvc/history/history-panel-annotated.js +++ b/client/galaxy/scripts/mvc/history/history-panel-annotated.js @@ -96,6 +96,12 @@ var AnnotatedHistoryPanel = _super.extend( // prevent propagation on icon btns so they won't bubble up to tr and toggleBodyVisibility 'click .icon-btn' : function( ev ){ ev.stopPropagation(); + // stopProp will prevent bootstrap from getting the click needed to open a dropdown + // in the case of metafile download buttons - workaround here + var $currTarget = $( ev.currentTarget ); + if( $currTarget.size() && $currTarget.attr( 'data-toggle' ) === 'dropdown' ){ + $currTarget.dropdown( 'toggle' ); + } } }), diff --git a/client/galaxy/scripts/mvc/tools/tools-form-workflow.js b/client/galaxy/scripts/mvc/tools/tools-form-workflow.js index fd8c8a5ce0d9..672cf8f784cb 100644 --- a/client/galaxy/scripts/mvc/tools/tools-form-workflow.js +++ b/client/galaxy/scripts/mvc/tools/tools-form-workflow.js @@ -41,7 +41,11 @@ define(['utils/utils', 'mvc/tools/tools-form-base'], Utils.deepeach(options.inputs, function(item) { if (item.type) { if (item.type == 'conditional') { - item.test_param.optional = false; + item.test_param.collapsible = false; + } else { + if ((['data', 'data_collection']).indexOf(item.type) == -1) { + item.collapsible = true; + } } } }); @@ -140,6 +144,7 @@ define(['utils/utils', 'mvc/tools/tools-form-base'], var input_config = { title : 'Add Actions: \'' + output_id + '\'', type : 'section', + flat : true, inputs : [{ action : 'RenameDatasetAction', argument : 'newname', @@ -168,6 +173,7 @@ define(['utils/utils', 'mvc/tools/tools-form-base'], },{ title : 'Assign columns', type : 'section', + flat : true, inputs : [{ action : 'ColumnSetAction', argument : 'chromCol', @@ -236,7 +242,7 @@ define(['utils/utils', 'mvc/tools/tools-form-base'], if (d) { // mark as expanded for (var j in head_list) { - head_list[j].expand = true; + head_list[j].expanded = true; } // update input field value diff --git a/client/grunt-tasks/install-libs.js b/client/grunt-tasks/install-libs.js index 6980be041977..c2f8cbda1613 100644 --- a/client/grunt-tasks/install-libs.js +++ b/client/grunt-tasks/install-libs.js @@ -17,10 +17,10 @@ module.exports = function( grunt ){ 'underscore': [ 'underscore.js', 'underscore.js' ], 'handlebars': [ 'handlebars.runtime.js', 'handlebars.runtime.js' ], 'backbone': [ 'backbone.js', 'backbone/backbone.js' ], + 'requirejs': [ 'require.js', 'require.js' ], + 'd3': [ 'd3.js', 'd3.js' ], // these need to be updated and tested - //'require': [ 'build/require.js', 'require.js' ], - //'d3': [ 'd3.js', 'd3.js' ], //'farbtastic': [ 'src/farbtastic.js', 'farbtastic.js' ], //'jQTouch': [ 'src/reference/jqtouch.js', 'jquery/jqtouch.js' ], //'bib2json': [ 'Parser.js', 'bibtex.js' ], diff --git a/config/auth_conf.xml.sample b/config/auth_conf.xml.sample index 639c6b633b3f..37994a6b67bb 100644 --- a/config/auth_conf.xml.sample +++ b/config/auth_conf.xml.sample @@ -1,5 +1,35 @@ + + + + + + + + + + localdb diff --git a/config/datatypes_conf.xml.sample b/config/datatypes_conf.xml.sample index 42b874b46cc4..cf91919f5cf3 100644 --- a/config/datatypes_conf.xml.sample +++ b/config/datatypes_conf.xml.sample @@ -271,6 +271,12 @@ + + + + + + - - + @@ -128,8 +149,13 @@ var_name_in_template CDATA #IMPLIED > - - + + + + + diff --git a/lib/galaxy/auth/__init__.py b/lib/galaxy/auth/__init__.py index 7dbb843b37ff..1a07dfe47639 100644 --- a/lib/galaxy/auth/__init__.py +++ b/lib/galaxy/auth/__init__.py @@ -18,31 +18,6 @@ import logging log = logging.getLogger(__name__) -# -# -# ldap -# '[login]'.endswith('@students.latrobe.edu.au') -# -# True -# ldap://STUDENTS.ltu.edu.au -# [(&(objectClass=user)(mail={login})) -# dc=STUDENTS,dc=ltu,dc=edu,dc=au -# -# jsmith -# mysecret -# sAMAccountName,mail] -# {sAMAccountName}@STUDENTS.ltu.edu.au -# {password} -# {sAMAccountName} -# {mail} -# -# -# -# ... -# - class AuthManager(object): @@ -85,14 +60,14 @@ def __init_authenticators(self, auth_config_file): authenticators.append(authenticator) self.authenticators = authenticators - def check_registration_allowed(self, login, password): + def check_registration_allowed(self, email, username, password): """Checks if the provided email/username is allowed to register.""" message = '' status = 'done' - for provider, options in self.active_authenticators(login, password): + for provider, options in self.active_authenticators(email, username, password): allow_reg = _get_tri_state(options, 'allow-register', True) if allow_reg is None: # i.e. challenge - auth_result, msg = provider.authenticate(login, password, options) + auth_result, msg = provider.authenticate(email, username, password, options) if auth_result is True: break if auth_result is None: @@ -112,11 +87,17 @@ def check_auto_registration(self, trans, login, password): Checks the username/email & password using auth providers in order. If a match is found, returns the 'auto-register' option for that provider. """ - for provider, options in self.active_authenticators(login, password): + if '@' in login: + email = login + username = None + else: + email = None + username = login + for provider, options in self.active_authenticators(email, username, password): if provider is None: log.debug( "Unable to find module: %s" % options ) else: - auth_result, auto_email, auto_username = provider.authenticate(login, password, options) + auth_result, auto_email, auto_username = provider.authenticate(email, username, password, options) auto_email = str(auto_email).lower() auto_username = str(auto_username).lower() if auth_result is True: @@ -139,7 +120,7 @@ def check_auto_registration(self, trans, login, password): def check_password(self, user, password): """Checks the username/email and password using auth providers.""" - for provider, options in self.active_authenticators(user, password): + for provider, options in self.active_authenticators(user.email, user.username, password): if provider is None: log.debug( "Unable to find module: %s" % options ) else: @@ -154,7 +135,7 @@ def check_change_password(self, user, current_password): """Checks that auth provider allows password changes and current_password matches. """ - for provider, options in self.active_authenticators(user, current_password): + for provider, options in self.active_authenticators(user.email, user.username, current_password): if provider is None: log.debug( "Unable to find module: %s" % options ) else: @@ -168,7 +149,7 @@ def check_change_password(self, user, current_password): return (False, 'Password change not supported') return (False, 'Invalid current password') - def active_authenticators(self, login, password): + def active_authenticators(self, email, username, password): """Yields AuthProvider instances for the provided configfile that match the filters. """ @@ -176,7 +157,7 @@ def active_authenticators(self, login, password): for authenticator in self.authenticators: filter_template = authenticator.filter_template if filter_template: - filter_str = filter_template.format(login=login, password=password) + filter_str = filter_template.format(email=email, username=username, password=password) passed_filter = eval(filter_str, {"__builtins__": None}, {'str': str}) if not passed_filter: continue # skip to next diff --git a/lib/galaxy/auth/providers/__init__.py b/lib/galaxy/auth/providers/__init__.py index fd200c01db4b..054bb45fd49b 100644 --- a/lib/galaxy/auth/providers/__init__.py +++ b/lib/galaxy/auth/providers/__init__.py @@ -16,15 +16,17 @@ def plugin_type(self): """ Short string providing labelling this plugin """ @abc.abstractmethod - def authenticate(self, login, password, options): + def authenticate(self, email, username, password, options): """ - Check that the username and password are correct. + Check that the user credentials are correct. NOTE: Used within auto-registration to check it is ok to register this user. - :param login: the user's email address or username - :type login: str + :param email: the user's email address + :type email: str + :param username: the user's username + :type username: str :param password: the plain text password they typed :type password: str :param options: options provided in auth_config_file @@ -44,8 +46,8 @@ def authenticate_user(self, user, password, options): NOTE: used on normal login to check authentication and update user details if required. - :param username: the user's email address or username - :type username: str + :param user: the user to authenticate + :type user: galaxy.model.User :param password: the plain text password they typed :type password: str :param options: options provided in auth_config_file diff --git a/lib/galaxy/auth/providers/alwaysreject.py b/lib/galaxy/auth/providers/alwaysreject.py index a2c27b6293a6..13fe895c7a3d 100644 --- a/lib/galaxy/auth/providers/alwaysreject.py +++ b/lib/galaxy/auth/providers/alwaysreject.py @@ -16,7 +16,7 @@ class AlwaysReject(AuthProvider): """ plugin_type = 'alwaysreject' - def authenticate(self, login, password, options): + def authenticate(self, email, username, password, options): """ See abstract method documentation. """ diff --git a/lib/galaxy/auth/providers/ldap_ad.py b/lib/galaxy/auth/providers/ldap_ad.py index ef2dddb83b80..1a631abea2b3 100644 --- a/lib/galaxy/auth/providers/ldap_ad.py +++ b/lib/galaxy/auth/providers/ldap_ad.py @@ -30,26 +30,35 @@ class LDAP(AuthProvider): """ plugin_type = 'ldap' - def authenticate(self, login, password, options): + def authenticate(self, email, username, password, options): """ See abstract method documentation. """ - log.debug("Login: %s" % login) - log.debug("Options: %s" % options) + log.debug("LDAP authenticate: email is %s" % email) + log.debug("LDAP authenticate: username is %s" % username) + log.debug("LDAP authenticate: options are %s" % options) failure_mode = False # reject but continue if options.get('continue-on-failure', 'False') == 'False': failure_mode = None # reject and do not continue + if _get_bool(options, 'login-use-username', False): + if username is None: + log.debug('LDAP authenticate: username must be used to login, cannot be None') + return (failure_mode, '', '') + else: + if email is None: + log.debug('LDAP authenticate: email must be used to login, cannot be None') + return (failure_mode, '', '') + try: import ldap except: - log.debug( - "Login: %s, LDAP: False (could not load ldap module)" % (login)) - return (failure_mode, '') + log.debug('LDAP authenticate: could not load ldap module') + return (failure_mode, '', '') # do LDAP search (if required) - params = {'login': login, 'password': password} + params = {'email': email, 'username': username, 'password': password} if 'search-fields' in options: try: # setup connection @@ -74,8 +83,8 @@ def authenticate(self, login, password, options): # parse results _, suser = l.result(result, 60) dn, attrs = suser[0] - log.debug(("LDAP dn: %s" % dn)) - log.debug(("LDAP Search attributes: %s" % attrs)) + log.debug(("LDAP authenticate: dn is %s" % dn)) + log.debug(("LDAP authenticate: search attributes are %s" % attrs)) if hasattr(attrs, 'has_key'): for attr in attributes: if attr in attrs: @@ -84,7 +93,7 @@ def authenticate(self, login, password, options): params[attr] = "" params['dn'] = dn except Exception: - log.exception('LDAP Search Exception for login: %s' % login) + log.exception('LDAP authenticate: search exception') return (failure_mode, '', '') # end search @@ -97,10 +106,10 @@ def authenticate(self, login, password, options): l.simple_bind_s(_get_subs( options, 'bind-user', params), _get_subs(options, 'bind-password', params)) except Exception: - log.exception('LDAP Authentication Exception for login %s' % login) + log.exception('LDAP authenticate: bind exception') return (failure_mode, '', '') - log.debug("Login: %s, LDAP: True" % (login)) + log.debug('LDAP authentication successful') return (True, _get_subs(options, 'auto-register-email', params), _get_subs(options, 'auto-register-username', params)) @@ -109,11 +118,7 @@ def authenticate_user(self, user, password, options): """ See abstract method documentation. """ - - if _get_bool(options, 'login-use-username', False): - return self.authenticate(user.username, password, options)[0] - else: - return self.authenticate(user.email, password, options)[0] + return self.authenticate(user.email, user.username, password, options)[0] class ActiveDirectory(LDAP): diff --git a/lib/galaxy/auth/providers/localdb.py b/lib/galaxy/auth/providers/localdb.py index 718889acad03..71508a01e4e1 100644 --- a/lib/galaxy/auth/providers/localdb.py +++ b/lib/galaxy/auth/providers/localdb.py @@ -13,7 +13,7 @@ class LocalDB(AuthProvider): """Authenticate users against the local Galaxy database (as per usual).""" plugin_type = 'localdb' - def authenticate(self, login, password, options): + def authenticate(self, email, username, password, options): """ See abstract method documentation. """ diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index d934daf9fe00..eed993c890b7 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -472,7 +472,7 @@ def set_meta( self, dataset, overwrite = True, **kwd ): dataset_symlink = os.path.join( os.path.dirname( index_file.file_name ), '__dataset_%d_%s' % ( dataset.id, os.path.basename( index_file.file_name ) ) ) os.symlink( dataset.file_name, dataset_symlink ) - + stderr_name = tempfile.NamedTemporaryFile( prefix = "bcf_index_stderr" ).name command = [ 'bcftools', 'index', dataset_symlink ] proc = subprocess.Popen( args=command, stderr=open( stderr_name, 'wb' ) ) @@ -753,7 +753,7 @@ def sqlite_datadictprovider( self, dataset, **settings ): class GeminiSQLite( SQlite ): """Class describing a Gemini Sqlite database """ - MetadataElement( name="gemini_version", default='0.10.0' , param=MetadataParameter, desc="Gemini Version", + MetadataElement( name="gemini_version", default='0.10.0' , param=MetadataParameter, desc="Gemini Version", readonly=True, visible=True, no_value='0.10.0' ) file_ext = "gemini.sqlite" @@ -772,7 +772,7 @@ def set_meta( self, dataset, overwrite = True, **kwd ): def sniff( self, filename ): if super( GeminiSQLite, self ).sniff( filename ): - gemini_table_names = [ "gene_detailed", "gene_summary", "resources", "sample_genotype_counts", "sample_genotypes", "samples", + gemini_table_names = [ "gene_detailed", "gene_summary", "resources", "sample_genotype_counts", "sample_genotypes", "samples", "variant_impacts", "variants", "version" ] try: conn = sqlite.connect( filename ) @@ -861,3 +861,25 @@ def display_peek(self, dataset): Binary.register_sniffable_binary_format('sra', 'sra', Sra) + +class RData( Binary ): + """Generic R Data file datatype implementation""" + file_ext = 'rdata' + + def __init__( self, **kwd ): + Binary.__init__( self, **kwd ) + + def sniff( self, filename ): + rdata_header = binascii.hexlify('RDX2\nX\n') + try: + header = open(filename).read(7) + if binascii.b2a_hex(header) == rdata_header: + return True + + header = gzip.open( filename ).read(7) + if binascii.b2a_hex(header) == rdata_header: + return True + except: + return False + +Binary.register_sniffable_binary_format('rdata', 'rdata', RData) diff --git a/lib/galaxy/datatypes/metadata.py b/lib/galaxy/datatypes/metadata.py index 0016cb306245..e30ac336c66b 100644 --- a/lib/galaxy/datatypes/metadata.py +++ b/lib/galaxy/datatypes/metadata.py @@ -688,11 +688,15 @@ def __init__( self, job ): def get_output_filenames_by_dataset( self, dataset, sa_session ): if isinstance( dataset, galaxy.model.HistoryDatasetAssociation ): return sa_session.query( galaxy.model.JobExternalOutputMetadata ) \ - .filter_by( job_id=self.job_id, history_dataset_association_id=dataset.id ) \ + .filter_by( job_id=self.job_id, + history_dataset_association_id=dataset.id, + is_valid=True ) \ .first() # there should only be one or None elif isinstance( dataset, galaxy.model.LibraryDatasetDatasetAssociation ): return sa_session.query( galaxy.model.JobExternalOutputMetadata ) \ - .filter_by( job_id=self.job_id, library_dataset_dataset_association_id=dataset.id ) \ + .filter_by( job_id=self.job_id, + library_dataset_dataset_association_id=dataset.id, + is_valid=True ) \ .first() # there should only be one or None return None @@ -701,6 +705,16 @@ def get_dataset_metadata_key( self, dataset ): # need to make different keys for them, since ids can overlap return "%s_%d" % ( dataset.__class__.__name__, dataset.id ) + def invalidate_external_metadata( self, datasets, sa_session ): + for dataset in datasets: + jeom = self.get_output_filenames_by_dataset( dataset, sa_session ) + # shouldn't be more than one valid, but you never know + while jeom: + jeom.is_valid = False + sa_session.add( jeom ) + sa_session.flush() + jeom = self.get_output_filenames_by_dataset( dataset, sa_session ) + def setup_external_metadata( self, datasets, sa_session, exec_dir=None, tmp_dir=None, dataset_files_path=None, output_fnames=None, config_root=None, diff --git a/lib/galaxy/datatypes/msa.py b/lib/galaxy/datatypes/msa.py new file mode 100644 index 000000000000..011de5a720f2 --- /dev/null +++ b/lib/galaxy/datatypes/msa.py @@ -0,0 +1,168 @@ +from galaxy.datatypes.data import Text +from galaxy.datatypes.binary import Binary +from galaxy.datatypes.data import get_file_peek +from galaxy.datatypes.data import nice_size +from galaxy.datatypes.metadata import MetadataElement +from galaxy.datatypes.util import generic_util +import os + + +import logging +log = logging.getLogger(__name__) + + +class Hmmer( Text ): + file_ext = "hmm" + + def set_peek(self, dataset, is_multi_byte=False): + if not dataset.dataset.purged: + dataset.peek = get_file_peek( dataset.file_name, is_multi_byte=is_multi_byte ) + dataset.blurb = "HMMER Database" + else: + dataset.peek = 'file does not exist' + dataset.blurb = 'file purged from disc' + + def display_peek(self, dataset): + try: + return dataset.peek + except: + return "HMMER database (%s)" % ( nice_size( dataset.get_size() ) ) + + +class Hmmer2( Hmmer ): + + def sniff(self, filename): + """HMMER2 files start with HMMER2.0 + """ + with open(filename, 'r') as handle: + return handle.read(8) == 'HMMER2.0' + return False + + +class Hmmer3( Hmmer ): + + def sniff(self, filename): + """HMMER3 files start with HMMER3/f + """ + with open(filename, 'r') as handle: + return handle.read(8) == 'HMMER3/f' + return False + + +class HmmerPress( Binary ): + """Class for hmmpress database files.""" + file_ext = 'hmmpress' + allow_datatype_change = False + composite_type = 'basic' + + def set_peek( self, dataset, is_multi_byte=False ): + """Set the peek and blurb text.""" + if not dataset.dataset.purged: + dataset.peek = "HMMER Binary database" + dataset.blurb = "HMMER Binary database" + else: + dataset.peek = 'file does not exist' + dataset.blurb = 'file purged from disk' + + def display_peek( self, dataset ): + """Create HTML content, used for displaying peek.""" + try: + return dataset.peek + except: + return "HMMER3 database (multiple files)" + + def __init__(self, **kwd): + Binary.__init__(self, **kwd) + # Binary model + self.add_composite_file('model.hmm.h3m', is_binary=True) + # SSI index for binary model + self.add_composite_file('model.hmm.h3i', is_binary=True) + # Profiles (MSV part) + self.add_composite_file('model.hmm.h3f', is_binary=True) + # Profiles (remained) + self.add_composite_file('model.hmm.h3p', is_binary=True) + +Binary.register_unsniffable_binary_ext("hmmpress") + + +class Stockholm_1_0( Text ): + file_ext = "stockholm" + + MetadataElement( name="number_of_alignments", default=0, desc="Number of multiple alignments", readonly=True, visible=True, optional=True, no_value=0 ) + + def set_peek( self, dataset, is_multi_byte=False ): + if not dataset.dataset.purged: + dataset.peek = get_file_peek( dataset.file_name, is_multi_byte=is_multi_byte ) + if (dataset.metadata.number_of_models == 1): + dataset.blurb = "1 alignment" + else: + dataset.blurb = "%s alignments" % dataset.metadata.number_of_models + dataset.peek = get_file_peek( dataset.file_name, is_multi_byte=is_multi_byte ) + else: + dataset.peek = 'file does not exist' + dataset.blurb = 'file purged from disc' + + def sniff( self, filename ): + if generic_util.count_special_lines('^#[[:space:]+]STOCKHOLM[[:space:]+]1.0', filename) > 0: + return True + else: + return False + + def set_meta( self, dataset, **kwd ): + """ + + Set the number of models in dataset. + """ + dataset.metadata.number_of_models = generic_util.count_special_lines('^#[[:space:]+]STOCKHOLM[[:space:]+]1.0', dataset.file_name) + + def split( cls, input_datasets, subdir_generator_function, split_params): + """ + + Split the input files by model records. + """ + if split_params is None: + return None + + if len(input_datasets) > 1: + raise Exception("STOCKHOLM-file splitting does not support multiple files") + input_files = [ds.file_name for ds in input_datasets] + + chunk_size = None + if split_params['split_mode'] == 'number_of_parts': + raise Exception('Split mode "%s" is currently not implemented for STOCKHOLM-files.' % split_params['split_mode']) + elif split_params['split_mode'] == 'to_size': + chunk_size = int(split_params['split_size']) + else: + raise Exception('Unsupported split mode %s' % split_params['split_mode']) + + def _read_stockholm_records( filename ): + lines = [] + with open(filename) as handle: + for line in handle: + lines.append( line ) + if line.strip() == '//': + yield lines + lines = [] + + def _write_part_stockholm_file( accumulated_lines ): + part_dir = subdir_generator_function() + part_path = os.path.join( part_dir, os.path.basename( input_files[0] ) ) + part_file = open( part_path, 'w' ) + part_file.writelines( accumulated_lines ) + part_file.close() + + try: + + stockholm_records = _read_stockholm_records( input_files[0] ) + stockholm_lines_accumulated = [] + for counter, stockholm_record in enumerate( stockholm_records, start=1): + stockholm_lines_accumulated.extend( stockholm_record ) + if counter % chunk_size == 0: + _write_part_stockholm_file( stockholm_lines_accumulated ) + stockholm_lines_accumulated = [] + if stockholm_lines_accumulated: + _write_part_stockholm_file( stockholm_lines_accumulated ) + except Exception, e: + log.error('Unable to split files: %s' % str(e)) + raise + split = classmethod(split) diff --git a/lib/galaxy/datatypes/registry.py b/lib/galaxy/datatypes/registry.py index 856096292c4a..d6211c89021d 100644 --- a/lib/galaxy/datatypes/registry.py +++ b/lib/galaxy/datatypes/registry.py @@ -23,6 +23,7 @@ import ngsindex import graph import text +import msa import galaxy.util from galaxy.util.odict import odict from display_applications.application import DisplayApplication diff --git a/lib/galaxy/datatypes/text.py b/lib/galaxy/datatypes/text.py index 7309e84afd0d..a3e3efd18289 100644 --- a/lib/galaxy/datatypes/text.py +++ b/lib/galaxy/datatypes/text.py @@ -139,7 +139,7 @@ def set_peek( self, dataset, is_multi_byte=False ): def sniff( self, filename ): """ - Try to guess the Obo filetype. + Try to guess the Obo filetype. It usually starts with a "format-version:" string and has several stanzas which starts with "id:". """ stanza = re.compile(r'^\[.*\]$') @@ -158,7 +158,7 @@ def sniff( self, filename ): class Arff( Text ): """ - An ARFF (Attribute-Relation File Format) file is an ASCII text file that describes a list of instances sharing a set of attributes. + An ARFF (Attribute-Relation File Format) file is an ASCII text file that describes a list of instances sharing a set of attributes. http://weka.wikispaces.com/ARFF """ file_ext = "arff" @@ -179,7 +179,7 @@ def set_peek( self, dataset, is_multi_byte=False ): def sniff( self, filename ): """ - Try to guess the Arff filetype. + Try to guess the Arff filetype. It usually starts with a "format-version:" string and has several stanzas which starts with "id:". """ with open( filename ) as handle: @@ -318,7 +318,7 @@ class SnpSiftDbNSFP( Text ): composite_type = 'auto_primary_file' allow_datatype_change = False """ - ## The dbNSFP file is a tabular file with 1 header line + ## The dbNSFP file is a tabular file with 1 header line ## The first 4 columns are required to be: chrom pos ref alt ## These match columns 1,2,4,5 of the VCF file ## SnpSift requires the file to be block-gzipped and the indexed with samtools tabix @@ -335,14 +335,14 @@ def __init__( self, **kwd ): def init_meta( self, dataset, copy_from=None ): Text.init_meta( self, dataset, copy_from=copy_from ) def generate_primary_file( self, dataset = None ): - """ + """ This is called only at upload to write the html file cannot rename the datasets here - they come with the default unfortunately """ self.regenerate_primary_file( dataset ) def regenerate_primary_file(self,dataset): """ - cannot do this until we are setting metadata + cannot do this until we are setting metadata """ annotations = "dbNSFP Annotations: %s\n" % ','.join(dataset.metadata.annotation) f = open(dataset.file_name,'a') @@ -366,7 +366,7 @@ def set_meta( self, dataset, overwrite=True, **kwd ): lines = buf.splitlines() headers = lines[0].split('\t') dataset.metadata.annotation = headers[4:] - except Exception,e: + except Exception,e: log.warn("set_meta fname: %s %s" % (fname,str(e))) finally: fh.close() @@ -375,4 +375,3 @@ def set_meta( self, dataset, overwrite=True, **kwd ): self.regenerate_primary_file(dataset) except Exception,e: log.warn("set_meta fname: %s %s" % (dataset.file_name if dataset and dataset.file_name else 'Unkwown',str(e))) - diff --git a/lib/galaxy/datatypes/util/generic_util.py b/lib/galaxy/datatypes/util/generic_util.py new file mode 100644 index 000000000000..49bfd007a894 --- /dev/null +++ b/lib/galaxy/datatypes/util/generic_util.py @@ -0,0 +1,19 @@ +import subprocess + + +def count_special_lines( word, filename, invert=False ): + """ + searching for special 'words' using the grep tool + grep is used to speed up the searching and counting + The number of hits is returned. + """ + try: + cmd = ["grep", "-c"] + if invert: + cmd.append('-v') + cmd.extend([word, filename]) + out = subprocess.Popen(cmd, stdout=subprocess.PIPE) + return int(out.communicate()[0].split()[0]) + except: + pass + return 0 diff --git a/lib/galaxy/jobs/__init__.py b/lib/galaxy/jobs/__init__.py index 4c459b51c0ed..8ac4c0375727 100644 --- a/lib/galaxy/jobs/__init__.py +++ b/lib/galaxy/jobs/__init__.py @@ -750,12 +750,7 @@ def __init__( self, job, queue, use_persisted_destination=False ): # directory to be set before prepare is run, or else premature deletion # and job recovery fail. # Create the working dir if necessary - try: - self.app.object_store.create(job, base_dir='job_work', dir_only=True, extra_dir=str(self.job_id)) - self.working_directory = self.app.object_store.get_filename(job, base_dir='job_work', dir_only=True, extra_dir=str(self.job_id)) - log.debug('(%s) Working directory for job is: %s' % (self.job_id, self.working_directory)) - except ObjectInvalid: - raise Exception('Unable to create job working directory, job failure') + self.create_working_directory() self.dataset_path_rewriter = self._job_dataset_path_rewriter( self.working_directory ) self.output_paths = None self.output_hdas_and_paths = None @@ -879,6 +874,41 @@ def get_special( ): self.write_version_cmd = None return self.extra_filenames + def create_working_directory( self ): + job = self.get_job() + try: + self.app.object_store.create( + job, base_dir='job_work', dir_only=True, obj_dir=True ) + self.working_directory = self.app.object_store.get_filename( + job, base_dir='job_work', dir_only=True, obj_dir=True ) + log.debug( '(%s) Working directory for job is: %s', + self.job_id, self.working_directory ) + except ObjectInvalid: + raise Exception( '(%s) Unable to create job working directory', + job.id ) + + def clear_working_directory( self ): + job = self.get_job() + if not os.path.exists( self.working_directory ): + log.warning( '(%s): Working directory clear requested but %s does ' + 'not exist', + self.job_id, + self.working_directory ) + return + + self.app.object_store.create( + job, base_dir='job_work', dir_only=True, obj_dir=True, + extra_dir='_cleared_contents', extra_dir_at_root=True ) + base = self.app.object_store.get_filename( + job, base_dir='job_work', dir_only=True, obj_dir=True, + extra_dir='_cleared_contents', extra_dir_at_root=True ) + date_str = datetime.datetime.now().strftime( '%Y%m%d-%H%M%S' ) + arc_dir = os.path.join( base, date_str ) + shutil.move( self.working_directory, arc_dir ) + self.create_working_directory() + log.debug( '(%s) Previous working directory moved to %s', + self.job_id, arc_dir ) + def default_compute_environment( self, job=None ): if not job: job = self.get_job() @@ -1334,7 +1364,7 @@ def cleanup( self, delete_files=True ): galaxy.tools.imp_exp.JobExportHistoryArchiveWrapper( self.job_id ).cleanup_after_job( self.sa_session ) galaxy.tools.imp_exp.JobImportHistoryArchiveWrapper( self.app, self.job_id ).cleanup_after_job() if delete_files: - self.app.object_store.delete(self.get_job(), base_dir='job_work', entire_dir=True, dir_only=True, extra_dir=str(self.job_id)) + self.app.object_store.delete(self.get_job(), base_dir='job_work', entire_dir=True, dir_only=True, obj_dir=True) except: log.exception( "Unable to cleanup job %d" % self.job_id ) @@ -1525,6 +1555,13 @@ def get_dataset_finish_context( self, job_context, dataset ): return ExpressionContext( meta, job_context ) return job_context + def invalidate_external_metadata( self ): + job = self.get_job() + self.external_output_metadata.invalidate_external_metadata( [ output_dataset_assoc.dataset for + output_dataset_assoc in + job.output_datasets + job.output_library_datasets ], + self.sa_session ) + def setup_external_metadata( self, exec_dir=None, tmp_dir=None, dataset_files_path=None, config_root=None, config_file=None, datatypes_config=None, diff --git a/lib/galaxy/jobs/metrics/instrumenters/collectl.py b/lib/galaxy/jobs/metrics/instrumenters/collectl.py index e91a9273bec1..05711806f22e 100644 --- a/lib/galaxy/jobs/metrics/instrumenters/collectl.py +++ b/lib/galaxy/jobs/metrics/instrumenters/collectl.py @@ -58,8 +58,9 @@ class CollectlPlugin( InstrumentPlugin ): def __init__( self, **kwargs ): self.__configure_paths( kwargs ) self.__configure_subsystems( kwargs ) - saved_logs_path = kwargs.get( "saved_logs_path", None ) + saved_logs_path = kwargs.get( "saved_logs_path", "" ) if "app" in kwargs: + log.debug("Found path for saved logs: %s" % saved_logs_path) saved_logs_path = kwargs[ "app" ].config.resolve_path( saved_logs_path ) self.saved_logs_path = saved_logs_path self.__configure_collectl_recorder_args( kwargs ) diff --git a/lib/galaxy/jobs/runners/pulsar.py b/lib/galaxy/jobs/runners/pulsar.py index f53de275187e..8067b3528cbc 100644 --- a/lib/galaxy/jobs/runners/pulsar.py +++ b/lib/galaxy/jobs/runners/pulsar.py @@ -349,7 +349,7 @@ def get_client( self, job_destination_params, job_id, env=[] ): encoded_job_id = self.app.security.encode_id(job_id) job_key = self.app.security.encode_id( job_id, kind="jobs_files" ) - endpoint_base = "%s/api/jobs/%s?job_key=%s" + endpoint_base = "%s/api/jobs/%s/files?job_key=%s" if self.app.config.nginx_upload_job_files_path: endpoint_base = "%s" + \ self.app.config.nginx_upload_job_files_path + \ diff --git a/lib/galaxy/jobs/runners/state_handlers/resubmit.py b/lib/galaxy/jobs/runners/state_handlers/resubmit.py index 59e2c5e82f36..c62d24a92873 100644 --- a/lib/galaxy/jobs/runners/state_handlers/resubmit.py +++ b/lib/galaxy/jobs/runners/state_handlers/resubmit.py @@ -14,53 +14,57 @@ def failure(app, job_runner, job_state): - if (getattr(job_state, 'runner_state', None) - and job_state.runner_state in - (job_state.runner_states.WALLTIME_REACHED, - job_state.runner_states.MEMORY_LIMIT_REACHED)): - # Intercept jobs that hit the walltime and have a walltime or - # nonspecific resubmit destination configured - for resubmit in job_state.job_destination.get('resubmit'): - if (resubmit.get('condition', None) and resubmit['condition'] != - job_state.runner_state): - # There is a resubmit defined for the destination but - # its condition is not for walltime_reached - continue - log.info("(%s/%s) Job will be resubmitted to '%s' because %s at " - "the '%s' destination", - job_state.job_wrapper.job_id, - job_state.job_id, - resubmit['destination'], - MESSAGES[job_state.runner_state], - job_state.job_wrapper.job_destination.id ) - # fetch JobDestination for the id or tag - new_destination = app.job_config.get_destination( - resubmit['destination']) - # Resolve dynamic if necessary - new_destination = (job_state.job_wrapper.job_runner_mapper - .cache_job_destination(new_destination)) - # Reset job state - job = job_state.job_wrapper.get_job() - if resubmit.get('handler', None): - log.debug('(%s/%s) Job reassigned to handler %s', - job_state.job_wrapper.job_id, job_state.job_id, - resubmit['handler']) - job.set_handler(resubmit['handler']) - job_runner.sa_session.add( job ) - # Is this safe to do here? - job_runner.sa_session.flush() - # Cache the destination to prevent rerunning dynamic after - # resubmit - job_state.job_wrapper.job_runner_mapper \ - .cached_job_destination = new_destination - job_state.job_wrapper.set_job_destination(new_destination) - # Clear external ID (state change below flushes the change) - job.job_runner_external_id = None - # Allow the UI to query for resubmitted state - if job.params is None: - job.params = {} - job_state.runner_state_handled = True - info = "This job was resubmitted to the queue because %s on its " \ - "compute resource." % MESSAGES[job_state.runner_state] - job_runner.mark_as_resubmitted(job_state, info=info) - return + runner_state = getattr(job_state, 'runner_state', None) + if (not runner_state + or runner_state not in (job_state.runner_states.WALLTIME_REACHED, + job_state.runner_states.MEMORY_LIMIT_REACHED)): + # not set or not a handleable runner state + return + # Intercept jobs that hit the walltime and have a walltime or + # nonspecific resubmit destination configured + for resubmit in job_state.job_destination.get('resubmit'): + condition = resubmit.get('condition', None) + if condition and condition != runner_state: + # There is a resubmit defined for the destination but + # its condition is not for the encountered state + continue + log.info("(%s/%s) Job will be resubmitted to '%s' because %s at " + "the '%s' destination", + job_state.job_wrapper.job_id, + job_state.job_id, + resubmit['destination'], + MESSAGES[job_state.runner_state], + job_state.job_wrapper.job_destination.id ) + # fetch JobDestination for the id or tag + new_destination = app.job_config.get_destination( + resubmit['destination']) + # Resolve dynamic if necessary + new_destination = (job_state.job_wrapper.job_runner_mapper + .cache_job_destination(new_destination)) + # Reset job state + job_state.job_wrapper.clear_working_directory() + job_state.job_wrapper.invalidate_external_metadata() + job = job_state.job_wrapper.get_job() + if resubmit.get('handler', None): + log.debug('(%s/%s) Job reassigned to handler %s', + job_state.job_wrapper.job_id, job_state.job_id, + resubmit['handler']) + job.set_handler(resubmit['handler']) + job_runner.sa_session.add( job ) + # Is this safe to do here? + job_runner.sa_session.flush() + # Cache the destination to prevent rerunning dynamic after + # resubmit + job_state.job_wrapper.job_runner_mapper \ + .cached_job_destination = new_destination + job_state.job_wrapper.set_job_destination(new_destination) + # Clear external ID (state change below flushes the change) + job.job_runner_external_id = None + # Allow the UI to query for resubmitted state + if job.params is None: + job.params = {} + job_state.runner_state_handled = True + info = "This job was resubmitted to the queue because %s on its " \ + "compute resource." % MESSAGES[job_state.runner_state] + job_runner.mark_as_resubmitted(job_state, info=info) + return diff --git a/lib/galaxy/main.py b/lib/galaxy/main.py index 3e8f257c13d7..83e08d9076ea 100644 --- a/lib/galaxy/main.py +++ b/lib/galaxy/main.py @@ -101,7 +101,7 @@ def load_galaxy_app( global_conf={"__file__": config_builder.ini_path}, **kwds ) - app.setup_control_queue() + app.control_worker.bind_and_start() return app diff --git a/lib/galaxy/model/mapping.py b/lib/galaxy/model/mapping.py index 55ab8c1019e1..a5f3b9b1db87 100644 --- a/lib/galaxy/model/mapping.py +++ b/lib/galaxy/model/mapping.py @@ -485,6 +485,7 @@ Column( "job_id", Integer, ForeignKey( "job.id" ), index=True ), Column( "history_dataset_association_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True, nullable=True ), Column( "library_dataset_dataset_association_id", Integer, ForeignKey( "library_dataset_dataset_association.id" ), index=True, nullable=True ), + Column( "is_valid", Boolean, default=True ), Column( "filename_in", String( 255 ) ), Column( "filename_out", String( 255 ) ), Column( "filename_results_code", String( 255 ) ), diff --git a/lib/galaxy/model/migrate/versions/0129_job_external_output_metadata_validity.py b/lib/galaxy/model/migrate/versions/0129_job_external_output_metadata_validity.py new file mode 100644 index 000000000000..f24a99f61b20 --- /dev/null +++ b/lib/galaxy/model/migrate/versions/0129_job_external_output_metadata_validity.py @@ -0,0 +1,50 @@ +""" +Migration script to allow invalidation of job external output metadata temp files +""" +from sqlalchemy import * +from sqlalchemy.orm import * +from migrate import * +from migrate.changeset import * +from galaxy.model.custom_types import * + +import datetime +now = datetime.datetime.utcnow + +import logging +log = logging.getLogger( __name__ ) + +metadata = MetaData() + + +def upgrade(migrate_engine): + metadata.bind = migrate_engine + print __doc__ + metadata.reflect() + + isvalid_column = Column( "is_valid", Boolean, default=True ) + __add_column( isvalid_column, "job_external_output_metadata", metadata ) + + +def downgrade(migrate_engine): + metadata.bind = migrate_engine + metadata.reflect() + + __drop_column( isvalid_column, "job_external_output_metadata", metadata ) + + +def __add_column(column, table_name, metadata, **kwds): + try: + table = Table( table_name, metadata, autoload=True ) + column.create( table, **kwds ) + except Exception as e: + print str(e) + log.exception( "Adding column %s failed." % column) + + +def __drop_column( column_name, table_name, metadata ): + try: + table = Table( table_name, metadata, autoload=True ) + getattr( table.c, column_name ).drop() + except Exception as e: + print str(e) + log.exception( "Dropping column %s failed." % column_name ) diff --git a/lib/galaxy/objectstore/__init__.py b/lib/galaxy/objectstore/__init__.py index 5cd54c18707b..123d16b846bc 100644 --- a/lib/galaxy/objectstore/__init__.py +++ b/lib/galaxy/objectstore/__init__.py @@ -74,15 +74,19 @@ def exists(self, obj, base_dir=None, dir_only=False, extra_dir=None, extra_dir_a :type alt_name: string :param alt_name: Use this name as the alternative name for the created dataset rather than the default. + + :type obj_dir: bool + :param obj_dir: Append a subdirectory named with the object's ID (e.g. + 000/obj.id) """ raise NotImplementedError() - def file_ready(self, obj, base_dir=None, dir_only=False, extra_dir=None, extra_dir_at_root=False, alt_name=None): + def file_ready(self, obj, base_dir=None, dir_only=False, extra_dir=None, extra_dir_at_root=False, alt_name=None, obj_dir=False): """ A helper method that checks if a file corresponding to a dataset is ready and available to be used. Return True if so, False otherwise.""" return True - def create(self, obj, base_dir=None, dir_only=False, extra_dir=None, extra_dir_at_root=False, alt_name=None): + def create(self, obj, base_dir=None, dir_only=False, extra_dir=None, extra_dir_at_root=False, alt_name=None, obj_dir=False): """ Mark the object identified by `obj` as existing in the store, but with no content. This method will create a proper directory structure for @@ -91,7 +95,7 @@ def create(self, obj, base_dir=None, dir_only=False, extra_dir=None, extra_dir_a """ raise NotImplementedError() - def empty(self, obj, base_dir=None, extra_dir=None, extra_dir_at_root=False, alt_name=None): + def empty(self, obj, base_dir=None, extra_dir=None, extra_dir_at_root=False, alt_name=None, obj_dir=False): """ Test if the object identified by `obj` has content. If the object does not exist raises `ObjectNotFound`. @@ -99,7 +103,7 @@ def empty(self, obj, base_dir=None, extra_dir=None, extra_dir_at_root=False, alt """ raise NotImplementedError() - def size(self, obj, extra_dir=None, extra_dir_at_root=False, alt_name=None): + def size(self, obj, extra_dir=None, extra_dir_at_root=False, alt_name=None, obj_dir=False): """ Return size of the object identified by `obj`. If the object does not exist, return 0. @@ -107,7 +111,7 @@ def size(self, obj, extra_dir=None, extra_dir_at_root=False, alt_name=None): """ raise NotImplementedError() - def delete(self, obj, entire_dir=False, base_dir=None, extra_dir=None, extra_dir_at_root=False, alt_name=None): + def delete(self, obj, entire_dir=False, base_dir=None, extra_dir=None, extra_dir_at_root=False, alt_name=None, obj_dir=False): """ Deletes the object identified by `obj`. See `exists` method for the description of other fields. @@ -115,11 +119,12 @@ def delete(self, obj, entire_dir=False, base_dir=None, extra_dir=None, extra_dir :type entire_dir: bool :param entire_dir: If True, delete the entire directory pointed to by extra_dir. For safety reasons, this option applies - only for and in conjunction with the extra_dir option. + only for and in conjunction with the extra_dir or + obj_dir options. """ raise NotImplementedError() - def get_data(self, obj, start=0, count=-1, base_dir=None, extra_dir=None, extra_dir_at_root=False, alt_name=None): + def get_data(self, obj, start=0, count=-1, base_dir=None, extra_dir=None, extra_dir_at_root=False, alt_name=None, obj_dir=False): """ Fetch `count` bytes of data starting at offset `start` from the object identified uniquely by `obj`. @@ -134,7 +139,7 @@ def get_data(self, obj, start=0, count=-1, base_dir=None, extra_dir=None, extra_ """ raise NotImplementedError() - def get_filename(self, obj, base_dir=None, dir_only=False, extra_dir=None, extra_dir_at_root=False, alt_name=None): + def get_filename(self, obj, base_dir=None, dir_only=False, extra_dir=None, extra_dir_at_root=False, alt_name=None, obj_dir=False): """ Get the expected filename (including the absolute path) which can be used to access the contents of the object uniquely identified by `obj`. @@ -142,7 +147,7 @@ def get_filename(self, obj, base_dir=None, dir_only=False, extra_dir=None, extra """ raise NotImplementedError() - def update_from_file(self, obj, base_dir=None, extra_dir=None, extra_dir_at_root=False, alt_name=None, file_name=None, create=False): + def update_from_file(self, obj, base_dir=None, extra_dir=None, extra_dir_at_root=False, alt_name=None, obj_dir=False, file_name=None, create=False): """ Inform the store that the file associated with the object has been updated. If `file_name` is provided, update from that file instead @@ -159,7 +164,7 @@ def update_from_file(self, obj, base_dir=None, extra_dir=None, extra_dir_at_root """ raise NotImplementedError() - def get_object_url(self, obj, extra_dir=None, extra_dir_at_root=False, alt_name=None): + def get_object_url(self, obj, extra_dir=None, extra_dir_at_root=False, alt_name=None, obj_dir=False): """ If the store supports direct URL access, return a URL. Otherwise return None. @@ -207,18 +212,18 @@ def __init__(self, config, config_xml=None, file_path=None, extra_dirs=None): if extra_dirs is not None: self.extra_dirs.update( extra_dirs ) - def _get_filename(self, obj, base_dir=None, dir_only=False, extra_dir=None, extra_dir_at_root=False, alt_name=None): + def _get_filename(self, obj, base_dir=None, dir_only=False, extra_dir=None, extra_dir_at_root=False, alt_name=None, obj_dir=False): """Class method that returns the absolute path for the file corresponding to the `obj`.id regardless of whether the file exists. """ - path = self._construct_path(obj, base_dir=base_dir, dir_only=dir_only, extra_dir=extra_dir, extra_dir_at_root=extra_dir_at_root, alt_name=alt_name, old_style=True) + path = self._construct_path(obj, base_dir=base_dir, dir_only=dir_only, extra_dir=extra_dir, extra_dir_at_root=extra_dir_at_root, alt_name=alt_name, obj_dir=False, old_style=True) # For backward compatibility, check the old style root path first; otherwise, # construct hashed path if not os.path.exists(path): return self._construct_path(obj, base_dir=base_dir, dir_only=dir_only, extra_dir=extra_dir, extra_dir_at_root=extra_dir_at_root, alt_name=alt_name) # TODO: rename to _disk_path or something like that to avoid conflicts with children that'll use the local_extra_dirs decorator, e.g. S3 - def _construct_path(self, obj, old_style=False, base_dir=None, dir_only=False, extra_dir=None, extra_dir_at_root=False, alt_name=None, **kwargs): + def _construct_path(self, obj, old_style=False, base_dir=None, dir_only=False, extra_dir=None, extra_dir_at_root=False, alt_name=None, obj_dir=False, **kwargs): """ Construct the expected absolute path for accessing the object identified by `obj`.id. @@ -256,6 +261,9 @@ def _construct_path(self, obj, old_style=False, base_dir=None, dir_only=False, e else: # Construct hashed path rel_path = os.path.join(*directory_hash_id(obj.id)) + # Create a subdirectory for the object ID + if obj_dir: + rel_path = os.path.join(rel_path, str(obj.id)) # Optionally append extra_dir if extra_dir is not None: if extra_dir_at_root: @@ -304,8 +312,9 @@ def size(self, obj, **kwargs): def delete(self, obj, entire_dir=False, **kwargs): path = self.get_filename(obj, **kwargs) extra_dir = kwargs.get('extra_dir', None) + obj_dir = kwargs.get('obj_dir', False) try: - if entire_dir and extra_dir: + if entire_dir and (extra_dir or obj_dir): shutil.rmtree(path) return True if self.exists(obj, **kwargs): diff --git a/lib/galaxy/tools/actions/__init__.py b/lib/galaxy/tools/actions/__init__.py index 4be51f8ca4e8..1425cbc1946a 100644 --- a/lib/galaxy/tools/actions/__init__.py +++ b/lib/galaxy/tools/actions/__init__.py @@ -33,7 +33,7 @@ def collect_input_datasets( self, tool, param_values, trans ): parameter name to Dataset instance for each tool parameter that is of the DataToolParameter type. """ - input_datasets = dict() + input_datasets = odict() def visitor( prefix, input, value, parent=None ): @@ -174,7 +174,9 @@ def execute(self, tool, trans, incoming={}, return_job=False, set_output_hid=Tru input_names = [] input_ext = 'data' input_dbkey = incoming.get( "dbkey", "?" ) - for name, data in inp_data.items(): + inp_items = inp_data.items() + inp_items.reverse() + for name, data in inp_items: if not data: data = NoneDataset( datatypes_registry=trans.app.datatypes_registry ) continue diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py index c689005ec22a..03cbcc31dcba 100644 --- a/lib/galaxy/tools/parameters/basic.py +++ b/lib/galaxy/tools/parameters/basic.py @@ -671,41 +671,19 @@ def get_html_field( self, trans=None, value=None, other_values={} ): def get_initial_value( self, trans, context, history=None ): return self.value.lower(); -## This is clearly a HACK, parameters should only be used for things the user -## can change, there needs to be a different way to specify this. I'm leaving -## it for now to avoid breaking any tools. - -class BaseURLToolParameter( ToolParameter ): +class BaseURLToolParameter( HiddenToolParameter ): """ - Returns a parameter the contains its value prepended by the + Returns a parameter that contains its value prepended by the current server base url. Used in all redirects. """ - def __init__( self, tool, input_source ): input_source = ensure_input_source( input_source ) - ToolParameter.__init__( self, tool, input_source ) + super( BaseURLToolParameter, self ).__init__( tool, input_source ) self.value = input_source.get( 'value', '' ) - def get_value( self, trans ): - # url = trans.request.base + self.value - url = url_for( self.value, qualified=True ) - return url - - def get_html_field( self, trans=None, value=None, other_values={} ): - return form_builder.HiddenField( self.name, self.get_value( trans ) ) - - def get_initial_value( self, trans, context, history=None ): - return self.get_value( trans ) - - def get_label( self ): - # BaseURLToolParameters are ultimately "hidden" parameters - return None - - def to_dict( self, trans, view='collection', value_mapper=None, other_values={} ): - d = super( BaseURLToolParameter, self ).to_dict( trans ) - d['value'] = self.get_value( trans ) - return d + def from_html( self, value=None, trans=None, context={} ): + return url_for( self.value, qualified=True ) DEFAULT_VALUE_MAP = lambda x: x @@ -1398,8 +1376,12 @@ class DrillDownSelectToolParameter( SelectToolParameter ): Option 5 - >>> print p.options - [{'selected': False, 'name': 'Heading 1', 'value': 'heading1', 'options': [{'selected': False, 'name': 'Option 1', 'value': 'option1', 'options': []}, {'selected': False, 'name': 'Option 2', 'value': 'option2', 'options': []}, {'selected': False, 'name': 'Heading 1', 'value': 'heading1', 'options': [{'selected': False, 'name': 'Option 3', 'value': 'option3', 'options': []}, {'selected': False, 'name': 'Option 4', 'value': 'option4', 'options': []}]}]}, {'selected': False, 'name': 'Option 5', 'value': 'option5', 'options': []}] + >>> print sorted(p.options[1].items()) + [('name', 'Option 5'), ('options', []), ('selected', False), ('value', 'option5')] + >>> p.options[0]["name"] + 'Heading 1' + >>> p.options[0]["selected"] + False """ def __init__( self, tool, input_source, context=None ): input_source = ensure_input_source( input_source ) @@ -1656,7 +1638,7 @@ def _get_history( self, trans, history=None ): class_name = self.__class__.__name__ assert trans is not None, "%s requires a trans" % class_name if history is None: - history = trans.get_history() + history = trans.get_history( create=True ) assert history is not None, "%s requires a history" % class_name return history diff --git a/lib/galaxy/tools/parameters/input_translation.py b/lib/galaxy/tools/parameters/input_translation.py index 3dd34c7e7ca4..9f7d464be95a 100644 --- a/lib/galaxy/tools/parameters/input_translation.py +++ b/lib/galaxy/tools/parameters/input_translation.py @@ -42,8 +42,10 @@ class ToolInputTranslator( object ): ... ''' ) ) >>> params = Params( { 'db':'hg17', 'URL':'URL_value', 'org':'Human', 'hgta_outputType':'primaryTable' } ) >>> translator.translate( params ) - >>> print params - {'hgta_outputType': 'primaryTable', 'data_type': 'tabular', 'table': 'unknown table', 'URL': 'URL_value?GALAXY_URL=0&_export=1', 'org': 'Human', 'URL_method': 'post', 'db': 'hg17', 'organism': 'Human', 'dbkey': 'hg17', 'description': 'no description'} + >>> print sorted(list(params.__dict__.keys())) + ['URL', 'URL_method', 'data_type', 'db', 'dbkey', 'description', 'hgta_outputType', 'org', 'organism', 'table'] + >>> params.get('URL', None) in ['URL_value?GALAXY_URL=0&_export=1', 'URL_value?_export=1&GALAXY_URL=0'] + True """ @classmethod def from_element( cls, elem ): diff --git a/lib/galaxy/tools/search/__init__.py b/lib/galaxy/tools/search/__init__.py index fa3fe142dfa5..d7ee29f3c8d1 100644 --- a/lib/galaxy/tools/search/__init__.py +++ b/lib/galaxy/tools/search/__init__.py @@ -37,6 +37,9 @@ def build_index( self, index_help=True ): self.index = self.storage.create_index( schema ) writer = self.index.writer() for id, tool in self.toolbox.tools(): + # Do not add data managers to the public index + if tool.tool_type == 'manage_data': + continue add_doc_kwds = { "id": id, "name": to_unicode( tool.name ), diff --git a/lib/galaxy/util/__init__.py b/lib/galaxy/util/__init__.py index af27083a2ecb..39f84532aeeb 100644 --- a/lib/galaxy/util/__init__.py +++ b/lib/galaxy/util/__init__.py @@ -631,8 +631,8 @@ class Params( object ): 0 >>> par.symbols # replaces unknown symbols with X ['alpha', '__lt____gt__', 'XrmX__pd__!'] - >>> par.flatten() # flattening to a list - [('status', 'on'), ('symbols', 'alpha'), ('symbols', '__lt____gt__'), ('symbols', 'XrmX__pd__!')] + >>> sorted(par.flatten()) # flattening to a list + [('status', 'on'), ('symbols', 'XrmX__pd__!'), ('symbols', '__lt____gt__'), ('symbols', 'alpha')] """ # is NEVER_SANITIZE required now that sanitizing for tool parameters can be controlled on a per parameter basis and occurs via InputValueWrappers? diff --git a/lib/galaxy/web/base/interactive_environments.py b/lib/galaxy/web/base/interactive_environments.py index fddfc7aa2ef7..e8c3e9ec2413 100644 --- a/lib/galaxy/web/base/interactive_environments.py +++ b/lib/galaxy/web/base/interactive_environments.py @@ -162,12 +162,16 @@ def url_template(self, url_template): .replace('${PORT}', str(self.attr.PORT)) return url - def docker_cmd(self, temp_dir): + def docker_cmd(self, temp_dir, env_override={}): """ Generate and return the docker command to execute """ - return '%s run -d %s -p %s:%s -v "%s:/import/" %s' % \ + conf = self.get_conf_dict() + conf.update(env_override) + env_str = ' '.join(['-e "%s=%s"' % (key.upper(), item) for key, item in conf.items()]) + return '%s run %s -d %s -p %s:%s -v "%s:/import/" %s' % \ (self.attr.viz_config.get("docker", "command"), + env_str, self.attr.viz_config.get("docker", "command_inject"), self.attr.PORT, self.attr.docker_port, temp_dir, self.attr.viz_config.get("docker", "image")) diff --git a/lib/galaxy/webapps/galaxy/api/job_files.py b/lib/galaxy/webapps/galaxy/api/job_files.py index a8d18f36cb11..3abac0f3b39d 100644 --- a/lib/galaxy/webapps/galaxy/api/job_files.py +++ b/lib/galaxy/webapps/galaxy/api/job_files.py @@ -99,7 +99,12 @@ def create( self, trans, job_id, payload, **kwargs ): try: shutil.move( input_file.name, path ) finally: - input_file.close() + try: + input_file.close() + except OSError: + # Fails to close file if not using nginx upload because the + # tempfile has moved and Python wants to delete it. + pass return {"message": "ok"} def __authorize_job_access(self, trans, encoded_job_id, **kwargs): diff --git a/lib/galaxy/webapps/galaxy/api/workflows.py b/lib/galaxy/webapps/galaxy/api/workflows.py index 57196020f600..f0e7aa9e6f5f 100644 --- a/lib/galaxy/webapps/galaxy/api/workflows.py +++ b/lib/galaxy/webapps/galaxy/api/workflows.py @@ -316,8 +316,8 @@ def build_module( self, trans, payload={}): """ tool_id = payload.get( 'tool_id', None ) tool_version = payload.get( 'tool_version', None ) - tool_inputs = payload.get( 'inputs', None ) - annotation = payload.get( 'annotation', '' ) + tool_inputs = payload.get( 'inputs', {} ) + annotation = payload.get( 'annotation', tool_inputs.get('annotation', '') ) # load tool tool = self._get_tool( tool_id, tool_version=tool_version, user=trans.user ) diff --git a/lib/galaxy/webapps/galaxy/controllers/user.py b/lib/galaxy/webapps/galaxy/controllers/user.py index bea04c02c2ec..efc6b518d615 100644 --- a/lib/galaxy/webapps/galaxy/controllers/user.py +++ b/lib/galaxy/webapps/galaxy/controllers/user.py @@ -678,7 +678,7 @@ def create( self, trans, cntrller='user', redirect_url='', refresh_frames=[], ** status = 'error' else: # check user is allowed to register - message, status = trans.app.auth_manager.check_registration_allowed(email, password) + message, status = trans.app.auth_manager.check_registration_allowed(email, username, password) if message == '': if not refresh_frames: if trans.webapp.name == 'galaxy': diff --git a/run_tests.sh b/run_tests.sh index cf7e71820f98..a95e08a6bbe0 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -234,7 +234,7 @@ do unit_extra=$2 shift 2 else - unit_extra='--exclude=functional --exclude="^get" --exclude=controllers --exclude=runners lib test/unit' + unit_extra='--exclude=functional --exclude="^get" --exclude=controllers --exclude=runners --exclude dictobj --exclude=jstree lib test/unit' shift 1 fi ;; @@ -347,4 +347,3 @@ else grunt --gruntfile=$gruntfile $grunt_task $grunt_args fi -cd $pwd_dir diff --git a/scripts/functional_tests.py b/scripts/functional_tests.py index 64c9f8bcdc6b..de56a42b1c3b 100644 --- a/scripts/functional_tests.py +++ b/scripts/functional_tests.py @@ -1,5 +1,9 @@ #!/usr/bin/env python +# Import system subprocess now before twill so we don't get its +# variant that breaks things. +import subprocess + import os import sys import shutil diff --git a/static/maps/libs/d3.js.map b/static/maps/libs/d3.js.map index 0be288748cbd..436228cd1d0b 100644 --- a/static/maps/libs/d3.js.map +++ b/static/maps/libs/d3.js.map @@ -1 +1 @@ -{"version":3,"file":"d3.js","sources":["../../src/libs/d3.js"],"names":["d3","d3_ascending","a","b","d3_number","x","isNaN","d3_bisector","compare","left","lo","hi","arguments","length","mid","right","d3_zipLength","d","d3_range_integerScale","k","d3_class","ctor","properties","key","Object","defineProperty","prototype","value","enumerable","e","d3_Map","d3_map_has","d3_map_prefix","this","d3_map_remove","d3_map_keys","keys","forEach","push","d3_map_size","size","charCodeAt","d3_map_prefixCode","d3_map_empty","d3_Set","d3_rebind","target","source","method","apply","d3_vendorSymbol","object","name","charAt","toUpperCase","substring","i","n","d3_vendorPrefixes","prefixName","d3_noop","d3_dispatch","d3_dispatch_event","dispatch","event","l","z","listeners","on","listenerByName","listener","get","slice","indexOf","concat","remove","set","d3_eventPreventDefault","preventDefault","d3_eventSource","s","sourceEvent","d3_eventDispatch","of","thiz","argumentz","e1","e0","type","d3_selection","groups","d3_subclass","d3_selectionPrototype","d3_selection_selector","selector","d3_select","d3_selection_selectorAll","d3_selectAll","d3_selection_attr","attrNull","removeAttribute","attrNullNS","removeAttributeNS","space","local","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","ns","qualify","d3_collapse","trim","replace","d3_selection_classedRe","RegExp","requote","d3_selection_classes","split","d3_selection_classed","classedConstant","classedFunction","map","d3_selection_classedName","re","node","c","classList","add","getAttribute","lastIndex","test","d3_selection_style","priority","styleNull","style","removeProperty","styleConstant","setProperty","styleFunction","d3_selection_property","propertyNull","propertyConstant","propertyFunction","d3_selection_creator","ownerDocument","createElementNS","namespaceURI","d3_selection_dataNode","data","__data__","d3_selection_filter","d3_selectMatches","d3_selection_sortComparator","comparator","d3_selection_each","callback","j","m","group","d3_selection_enter","selection","d3_selection_enterPrototype","d3_selection_enterInsertBefore","enter","i0","j0","update","d3_selection_interrupt","lock","__transition__","active","d3_selection_on","capture","onRemove","removeEventListener","$","onAdd","wrap","d3_array","call","addEventListener","_","removeAll","match","d3_selection_onListener","filter","d3_selection_onFilters","d3_selection_onFilter","o","related","relatedTarget","compareDocumentPosition","d3_event_dragSuppress","d3_event_dragId","click","w","select","d3_window","d3_event_dragSelect","d3_documentElement","suppressClick","off","setTimeout","d3_mousePoint","container","changedTouches","svg","ownerSVGElement","createSVGPoint","point","clientX","y","clientY","matrixTransform","getScreenCTM","inverse","rect","getBoundingClientRect","clientLeft","top","clientTop","d3_behavior_dragTouchId","identifier","d3_behavior_dragTouchSubject","d3_behavior_dragMouseSubject","d3_sgn","d3_cross2d","d3_acos","π","Math","acos","d3_asin","halfπ","asin","d3_sinh","exp","d3_cosh","d3_tanh","d3_haversin","sin","d3_Color","d3_hsl","h","d3_Hsl","d3_hsl_rgb","v","m1","m2","vv","round","d3_rgb","d3_hcl","d3_Hcl","d3_hcl_lab","d3_lab","cos","d3_radians","d3_Lab","d3_lab_rgb","d3_lab_xyz","d3_lab_X","d3_lab_Y","d3_lab_Z","d3_xyz_rgb","d3_lab_hcl","atan2","d3_degrees","sqrt","d3_xyz_lab","pow","r","d3_rgbNumber","d3_rgbString","g","d3_Rgb","d3_rgb_hex","max","toString","min","d3_rgb_parse","format","rgb","hsl","color","exec","parseFloat","d3_rgb_parseNumber","d3_rgb_names","parseInt","d3_rgb_hsl","d3_rgb_lab","d3_rgb_xyz","f","d3_functor","d3_identity","d3_xhrType","response","url","mimeType","d3_xhr","respond","result","status","request","responseText","xhr","error","load","headers","XMLHttpRequest","responseType","XDomainRequest","onload","onerror","onreadystatechange","readyState","onprogress","progress","header","toLowerCase","send","open","setRequestHeader","overrideMimeType","beforesend","abort","rebind","d3_xhr_fixCallback","d3_timer_step","now","d3_timer_mark","delay","d3_timer_sweep","isFinite","clearTimeout","d3_timer_timeout","d3_timer_interval","d3_timer_frame","Date","d3_timer_active","d3_timer_queueHead","t","t0","t1","time","d3_timer_queueTail","d3_format_precision","p","ceil","log","LN10","d3_formatPrefix","abs","scale","symbol","d3_locale_numberFormat","locale","locale_decimal","decimal","locale_thousands","thousands","locale_grouping","grouping","locale_currency","currency","formatGroup","reverse","join","specifier","d3_format_re","fill","align","sign","zfill","width","comma","precision","prefix","suffix","integer","floor","d3_format_types","d3_format_typeDefault","zcomma","fullSuffix","negative","unit","formatPrefix","lastIndexOf","before","after","padding","Array","d3_date_utc","UTC","d3_time_interval","step","number","date","d0","d1","offset","d3_date","range","dt","times","range_utc","utc","d3_time_interval_utc","d3_locale_timeFormat","d3_time_format","template","string","d3_time_formatPads","d3_time_formats","parse","H","M","S","L","Z","d3_time_parse","localZ","setFullYear","W","getDay","U","setHours","d3_time_parsers","d3_time_parseWeekdayAbbrev","d3_time_dayAbbrevRe","d3_time_dayAbbrevLookup","d3_time_parseWeekday","d3_time_dayRe","d3_time_dayLookup","d3_time_parseMonthAbbrev","d3_time_monthAbbrevRe","d3_time_monthAbbrevLookup","d3_time_parseMonth","d3_time_monthRe","d3_time_monthLookup","d3_time_parseLocaleFull","d3_time_parseLocaleDate","d3_time_parseLocaleTime","X","d3_time_parseAmPm","d3_time_periodLookup","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_days","days","locale_shortDays","shortDays","locale_months","months","locale_shortMonths","shortMonths","multi","d3_time_formatMulti","d3_time_formatRe","d3_time_formatLookup","A","getMonth","B","d3_time_formatPad","getDate","getHours","I","d3_time","dayOfYear","getMilliseconds","getMinutes","getSeconds","sundayOfYear","mondayOfYear","getFullYear","Y","d3_time_zone","%","d3_time_parseDay","d3_time_parseHour24","d3_time_parseDayOfYear","d3_time_parseMilliseconds","d3_time_parseMonthNumber","d3_time_parseMinutes","d3_time_parseSeconds","d3_time_parseWeekNumberSunday","d3_time_parseWeekdayNumber","d3_time_parseWeekNumberMonday","d3_time_parseYear","d3_time_parseFullYear","d3_time_parseZone","d3_time_parseLiteralPercent","names","d3_time_numberRe","d3_time_expandYear","getTimezoneOffset","zs","zh","zm","d3_time_percentRe","formats","d3_adder","d3_adderSum","bv","av","d3_geo_streamGeometry","geometry","d3_geo_streamGeometryType","hasOwnProperty","d3_geo_streamLine","coordinates","closed","coordinate","lineStart","lineEnd","d3_geo_streamPolygon","polygonStart","polygonEnd","d3_geo_areaRingStart","nextPoint","λ","φ","dλ","λ0","sdλ","adλ","cosφ","sinφ","sinφ0","u","cosφ0","d3_geo_areaRingSum","λ00","φ00","d3_geo_area","d3_geo_cartesian","spherical","d3_geo_cartesianDot","d3_geo_cartesianCross","d3_geo_cartesianAdd","d3_geo_cartesianScale","vector","d3_geo_cartesianNormalize","d3_geo_spherical","cartesian","d3_geo_sphericalEqual","ε","d3_geo_centroidPoint","d3_geo_centroidPointXYZ","d3_geo_centroidW0","d3_geo_centroidX0","d3_geo_centroidY0","d3_geo_centroidZ0","d3_geo_centroidLineStart","y0","z0","x0","d3_geo_centroidW1","d3_geo_centroidX1","d3_geo_centroidY1","d3_geo_centroidZ1","d3_geo_centroid","d3_geo_centroidLineEnd","d3_geo_centroidRingStart","cx","cy","cz","d3_geo_centroidX2","d3_geo_centroidY2","d3_geo_centroidZ2","d3_true","d3_geo_clipPolygon","segments","clipStartInside","interpolate","subject","clip","segment","p0","p1","d3_geo_clipPolygonIntersection","sort","d3_geo_clipPolygonLinkCircular","entry","points","start","current","isSubject","array","other","d3_geo_clip","pointVisible","clipLine","clipStart","rotate","pointLine","line","pointRing","ring","ringListener","ringStart","ringEnd","clean","ringSegments","buffer","pop","polygon","polygonStarted","shift","d3_geo_clipSegmentLength1","rotatedClipStart","invert","merge","d3_geo_pointInPolygon","d3_geo_clipSort","sphere","d3_geo_clipBufferListener","lines","rejoin","meridian","parallel","meridianNormal","polarAngle","winding","reset","point0","φ0","antimeridian","τ","arc","intersection","φarc","d3_geo_clipAntimeridianLine","sλ0","λ1","φ1","sλ1","d3_geo_clipAntimeridianIntersect","cosφ1","sinλ0_λ1","atan","d3_geo_clipAntimeridianInterpolate","from","to","direction","d3_geo_clipCircle","radius","visible","cr","c0","v0","v00","point2","point1","smallRadius","code","intersect","notHemisphere","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","uu","t2","q","δλ","polar","q1","d3_geo_circleInterpolate","d3_geom_clipLine","x1","y1","ax","ay","bx","by","dx","dy","d3_geo_clipExtent","corner","comparePoints","ca","cb","insidePolygon","wn","a1","linePoint","first","v_","x_","y_","x__","y__","v__","bufferListener","d3_geo_clipExtentMAX","listener_","inside","d3_geo_compose","compose","d3_geo_conic","projectAt","d3_geo_projectionMutator","parallels","d3_geo_conicEqualArea","forward","ρ","C","ρ0","ρ0_y","d3_geo_pathAreaRingStart","d3_geo_pathAreaPolygon","x00","y00","d3_geo_pathArea","d3_geo_pathBoundsPoint","d3_geo_pathBoundsX0","d3_geo_pathBoundsX1","d3_geo_pathBoundsY0","d3_geo_pathBoundsY1","d3_geo_pathBuffer","pointCircle","pointLineStart","stream","lineEndPolygon","d3_geo_pathBufferCircle","pointRadius","d3_geo_pathCentroidPoint","d3_geo_pathCentroidLineStart","d3_geo_pathCentroid","d3_geo_pathCentroidLineEnd","d3_geo_pathCentroidRingStart","d3_geo_pathContext","context","moveTo","lineTo","closePath","d3_geo_resample","project","resample","maxDepth","resampleRecursive","resampleNone","d3_geo_transformPoint","resampleLineTo","a0","b0","ringPoint","a00","b00","c00","b1","depth","d2","δ2","φ2","λ2","x2","y2","dx2","dy2","dz","cosMinDistance","d3_geo_pathProjectStream","d3_geo_projectionRadians","d3_geo_transform","d3_geo_projection","projection","projectRotate","δx","δy","d3_geo_rotation","δφ","δγ","center","invalidate","valid","projectResample","preclip","d3_geo_clipAntimeridian","postclip","clipAngle","clipExtent","output","translate","d3_geo_equirectangular","d3_geo_identityRotation","d3_geo_rotationλ","d3_geo_rotationφγ","d3_geo_forwardRotationλ","rotation","cosδφ","sinδφ","cosδγ","sinδγ","sr","d3_geo_circleAngle","angle","PI","d3_geo_graticuleX","d3_geo_graticuleY","d3_source","d3_target","d3_geo_interpolate","cy0","sy0","cy1","sy1","kx0","ky0","kx1","ky1","distance","d3_geo_lengthLineStart","cosΔλ","d3_geo_lengthSum","d3_geo_length","d3_geo_azimuthal","azimuthal","cosλ","sinc","cosc","d3_geo_conicConformal","F","tan","d3_geo_mercator","d3_geo_conicEquidistant","G","d3_geo_mercatorProjection","clipAuto","d3_geo_transverseMercator","d3_geom_pointX","d3_geom_pointY","d3_geom_hullUpper","hull","hs","d3_geom_hullOrder","d3_geom_polygonInside","d3_geom_polygonIntersect","x3","x21","x43","y3","y21","y43","ua","d3_geom_polygonClosed","d3_geom_voronoiBeach","d3_geom_voronoiRedBlackNode","edge","site","circle","d3_geom_voronoiCreateBeach","beach","d3_geom_voronoiBeachPool","d3_geom_voronoiDetachBeach","d3_geom_voronoiDetachCircle","d3_geom_voronoiBeaches","d3_geom_voronoiRemoveBeach","vertex","previous","P","next","N","disappearing","lArc","unshift","rArc","iArc","nArcs","d3_geom_voronoiSetEdgeEnd","d3_geom_voronoiCreateEdge","d3_geom_voronoiAttachCircle","d3_geom_voronoiAddBeach","dxl","dxr","directrix","d3_geom_voronoiLeftBreakPoint","d3_geom_voronoiRightBreakPoint","R","newArc","insert","lSite","rSite","hb","hc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","d3_geom_voronoiCell","edges","d3_geom_voronoiCloseCells","extent","cell","iHalfEdge","halfEdges","nHalfEdges","end","cells","d3_geom_voronoiCells","iCell","prepare","splice","d3_geom_voronoiHalfEdge","d3_geom_voronoiCreateBorderEdge","d3_geom_voronoiHalfEdgeOrder","d3_geom_voronoiCircle","cSite","ε2","ha","d3_geom_voronoiCirclePool","d3_geom_voronoiCircles","d3_geom_voronoiFirstCircle","d3_geom_voronoiClipEdges","d3_geom_voronoiEdges","d3_geom_voronoiConnectEdge","vb","fm","fb","va","lx","ly","rx","ry","fx","fy","d3_geom_voronoiEdge","d3_geom_voronoiRedBlackTree","d3_geom_voronoiRedBlackRotateLeft","tree","parent","d3_geom_voronoiRedBlackRotateRight","d3_geom_voronoiRedBlackFirst","d3_geom_voronoi","sites","bbox","d3_geom_voronoiVertexOrder","diagram","d3_geom_voronoiTriangleArea","d3_geom_quadtreeCompatX","d3_geom_quadtreeCompatY","d3_geom_quadtreeNode","leaf","nodes","d3_geom_quadtreeVisit","sx","sy","children","d3_interpolateRgb","ar","ag","ab","br","bg","bb","d3_interpolateObject","d3_interpolate","d3_interpolateNumber","d3_interpolateString","am","bm","bs","bi","d3_interpolate_numberA","d3_interpolate_numberB","index","interpolators","d3_interpolateArray","na","nb","n0","d3_ease_clamp","d3_ease_reverse","d3_ease_reflect","d3_ease_quad","d3_ease_cubic","d3_ease_cubicInOut","t3","d3_ease_poly","d3_ease_sin","d3_ease_exp","d3_ease_circle","d3_ease_elastic","d3_ease_back","d3_ease_bounce","d3_interpolateHcl","hcl","ah","ac","al","bh","bc","bl","d3_interpolateHsl","as","d3_interpolateLab","lab","aa","ba","d3_interpolateRound","d3_transform","r0","r1","kx","d3_transformNormalize","kz","d3_transformDot","ky","d3_transformCombine","skew","d3_interpolateTransform","transform","ta","tb","ra","rb","wa","wb","ka","kb","d3_uninterpolateNumber","d3_uninterpolateClamp","d3_layout_bundlePath","link","lca","d3_layout_bundleLeastCommonAncestor","d3_layout_bundleAncestors","ancestors","aNodes","bNodes","aNode","bNode","sharedNode","d3_layout_forceDragstart","fixed","d3_layout_forceDragend","d3_layout_forceMouseover","px","py","d3_layout_forceMouseout","d3_layout_forceAccumulate","quad","alpha","charges","charge","random","pointCharge","d3_layout_hierarchyRebind","hierarchy","links","d3_layout_hierarchyLinks","d3_layout_hierarchyVisitBefore","d3_layout_hierarchyVisitAfter","nodes2","d3_layout_hierarchyChildren","d3_layout_hierarchyValue","d3_layout_hierarchySort","child","d3_layout_stackX","d3_layout_stackY","d3_layout_stackOut","d3_layout_stackOrderDefault","d3_layout_stackOffsetZero","d3_layout_stackMaxIndex","d3_layout_stackReduceSum","reduce","d3_layout_stackSum","d3_layout_histogramBinSturges","values","d3_layout_histogramBinFixed","LN2","d3_layout_histogramRange","d3_layout_packSort","d3_layout_packInsert","_pack_next","_pack_prev","d3_layout_packSplice","d3_layout_packIntersects","dr","d3_layout_packSiblings","bound","xMin","xMax","yMin","yMax","d3_layout_packLink","d3_layout_packPlace","isect","s1","s2","d3_layout_packUnlink","d3_layout_packTransform","db","da","dc","d3_layout_treeSeparation","d3_layout_treeLeft","d3_layout_treeRight","d3_layout_treeMove","wm","wp","change","d3_layout_treeShift","d3_layout_treeAncestor","vim","ancestor","d3_layout_clusterY","d3_layout_clusterX","d3_layout_clusterLeft","d3_layout_clusterRight","d3_layout_treemapPadNull","d3_layout_treemapPad","d3_scaleExtent","domain","stop","d3_scaleRange","rangeExtent","d3_scale_bilinear","uninterpolate","d3_scale_nice","nice","i1","d3_scale_niceStep","d3_scale_niceIdentity","d3_scale_polylinear","bisect","d3_scale_linear","clamp","rescale","linear","input","Number","rangeRound","ticks","d3_scale_linearTicks","tickFormat","d3_scale_linearTickFormat","d3_scale_linearNice","copy","d3_scale_linearRebind","d3_scale_linearTickRange","span","err","d3_scale_linearPrecision","d3_scale_linearFormatPrecision","d3_scale_linearFormatSignificant","d3_scale_log","base","positive","niced","d3_scale_logNiceNegative","d3_scale_logFormat","d3_scale_pow","exponent","powp","d3_scale_powPow","powb","d3_scale_ordinal","ranger","steps","rangeBand","xi","has","rangePoints","rangeBands","outerPadding","rangeRoundBands","d3_scale_quantile","thresholds","quantile","quantiles","invertExtent","d3_scale_quantize","d3_scale_threshold","d3_scale_identity","identity","d3_svg_arcInnerRadius","innerRadius","d3_svg_arcOuterRadius","outerRadius","d3_svg_arcStartAngle","startAngle","d3_svg_arcEndAngle","endAngle","d3_svg_line","tension","defined","d3_svg_lineLinear","interpolateKey","d3_svg_lineInterpolators","d3_svg_lineLinearClosed","d3_svg_lineStep","path","d3_svg_lineStepBefore","d3_svg_lineStepAfter","d3_svg_lineCardinalOpen","d3_svg_lineHermite","d3_svg_lineCardinalTangents","d3_svg_lineCardinalClosed","d3_svg_lineCardinal","tangents","pi","lp","p2","d3_svg_lineBasis","d3_svg_lineDot4","d3_svg_lineBasisBezier3","d3_svg_lineBasisBezier","d3_svg_lineBasisOpen","d3_svg_lineBasisClosed","d3_svg_lineBundle","d3_svg_lineBasisBezier1","d3_svg_lineBasisBezier2","d3_svg_lineSlope","d3_svg_lineFiniteDifferences","d3_svg_lineMonotoneTangents","d3_svg_lineMonotone","d3_svg_lineRadial","d3_svg_arcOffset","d3_svg_area","area","points1","interpolateReverse","points0","fx0","fy0","fx1","fy1","d3_svg_chordRadius","d3_svg_diagonalProjection","d3_svg_diagonalRadialProjection","d3_svg_symbolSize","d3_svg_symbolType","d3_svg_symbolCircle","d3_transition","id","d3_transitionPrototype","d3_transition_tween","tween","d3_transition_text","textContent","d3_transitionNode","inherit","count","transition","ease","duration","timer","elapsed","tweened","tick","d3_svg_axisX","attr","d3_svg_axisY","d3_time_formatIsoNative","toISOString","d3_time_scale","methods","tickMethod","d3_time_scaleSteps","year","d3_time_scaleMilliseconds","d3_time_scaleDate","interval","skip","skipped","d3_json","JSON","d3_html","d3_document","createRange","selectNode","body","createContextualFragment","version","d3_arraySlice","list","document","documentElement","window","childNodes","nodeType","createElement","d3_element_prototype","Element","d3_element_setAttribute","d3_element_setAttributeNS","d3_style_prototype","CSSStyleDeclaration","d3_style_setProperty","ascending","descending","undefined","sum","mean","median","d3_bisect","bisectLeft","bisectRight","bisector","shuffle","permute","indexes","permutes","pairs","zip","zips","transpose","matrix","entries","arrays","merged","Error","empty","nest","mapType","rollup","sortValues","keyValue","setter","valuesByKey","sortKey","sortKeys","keyMap","order","behavior","d3_requote_re","__proto__","property","querySelector","querySelectorAll","d3_selectMatcher","Sizzle","matchesSelector","d3_selectionRoot","subgroup","subnode","subgroups","parentNode","selectAll","d3_nsPrefix","xhtml","xlink","xml","xmlns","getAttributeNS","each","classed","contains","getComputedStyle","getPropertyValue","text","html","innerHTML","append","appendChild","insertBefore","removeChild","bind","groupData","nodeData","updateNodes","enterNodes","exitNodes","nodeByKeyValue","dataByKeyValue","keyValues","exit","datum","nextSibling","args","upgroup","d3_transitionInheritId","d3_transitionId","d3_transitionInherit","interrupt","mouseenter","mouseleave","mouse","touches","touch","drag","mousedown","touchstart","dragstart","position","move","moved","position1","dragId","position0","dragged","dragOffset","ended","dragSubject","dragName","dragRestore","that","origin","SQRT2","ρ2","ρ4","interpolateZoom","coshr0","w0","ux0","uy0","ux1","uy1","w1","zoom","mousedowned","d3_behavior_zoomWheel","mousewheeled","mousemove","mousewheelreset","dblclicked","touchstarted","location","view","scaleTo","scaleExtent","translateTo","zoomstarted","zoomed","zoomended","location0","mouseup","relocate","scale0","locations0","started","touchmove","touchend","targets","changed","touchtime","distance0","l0","l1","distance1","scale1","zoomName","mousewheelTimer","translate0","d3_behavior_zoomDelta","shiftKey","d3_behavior_zoomInfinity","view1","__chart__","deltaY","deltaMode","wheelDelta","detail","d3_hslPrototype","brighter","darker","d3_hclPrototype","d3_lab_K","d3_labPrototype","d3_rgbPrototype","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","functor","dsv","delimiter","row","typedResponse","formatRow","formatValue","reFormat","delimiterCode","parseRows","Function","stringify","token","EOF","eol","EOL","rows","isArray","formatRows","fieldSet","fields","field","csv","tsv","then","flush","d3_formatPrefixes","String","fromCharCode","toPrecision","toExponential","toFixed","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","getTime","valueOf","setDate","d3_time_prototype","setUTCDate","setDay","setUTCDay","setUTCFullYear","setUTCHours","setMilliseconds","setUTCMilliseconds","setMinutes","setUTCMinutes","setMonth","setUTCMonth","setSeconds","setUTCSeconds","setTime","day","years","week","sunday","weeks","weekOfYear","-","0","numberFormat","timeFormat","d3_locale_enUS","geo","d3_adderTemp","d3_geo_streamObjectType","Feature","feature","FeatureCollection","features","Sphere","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","GeometryCollection","geometries","d3_geo_areaSum","bounds","ranges","normal","equatorial","inflection","λ_","λi","φi","dλSum","λ__","φ__","compareRanges","withinRange","best","centroid","conicEqualArea","raw","albers","albersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","lower48Stream","alaskaStream","hawaiiStream","d3_geo_pathAreaSum","d3_geo_pathBounds","contextStream","cacheStream","projectStream","projectionMutator","equirectangular","Δλ","sinΔλ","sinφ1","graticule","X0","DX","X1","Y0","DY","Y1","outline","majorExtent","minorExtent","majorStep","minorStep","greatArc","source_","target_","d3_geo_azimuthalEqualArea","cosλcosφ","azimuthalEqualArea","d3_geo_azimuthalEquidistant","azimuthalEquidistant","conicConformal","conicEquidistant","d3_geo_gnomonic","gnomonic","mercator","d3_geo_orthographic","orthographic","d3_geo_stereographic","stereographic","transverseMercator","geom","vertices","flippedPoints","upper","lower","skipLeft","skipRight","d3_geom_polygonPrototype","grandpa","uncle","sibling","voronoi","polygons","d3_geom_voronoiClipExtent","triangles","s0","delaunay","quadtree","nx","ny","insertChild","nPoint","bottom","xs","ys","x1_","y1_","x2_","y2_","compat","root","visit","interpolateRgb","interpolateObject","interpolateNumber","interpolateString","interpolateArray","d3_ease_default","d3_ease","poly","cubic","elastic","back","bounce","d3_ease_mode","in","out","in-out","out-in","interpolateHcl","interpolateHsl","interpolateLab","interpolateRound","baseVal","consolidate","d3_transformIdentity","interpolateTransform","layout","bundle","paths","chord","relayout","groupSums","groupIndex","subgroupIndex","chords","sortGroups","sortSubgroups","di","dj","subindex","sortChords","resort","force","repulse","dw","dn","theta2","chargeDistance2","dragmove","resume","distances","strengths","friction","linkDistance","d3_layout_forceLinkDistance","linkStrength","d3_layout_forceLinkStrength","d3_layout_forceChargeDistance2","gravity","weight","chargeDistance","theta","dimension","neighbors","candidates","stack","childs","revalue","partition","pie","d3_layout_pieSortByValue","arcs","series","orders","offsets","d3_layout_stackOrders","d3_layout_stackOffsets","inside-out","sums","tops","bottoms","default","silhouette","wiggle","s3","o0","expand","zero","histogram","bin","bins","valuer","binner","frequency","pack","root0","root1","wrapTree","firstWalk","secondWalk","nodeSize","sizeNode","tx","separation","node1","queue","siblings","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","cluster","previousNode","treemap","squarify","score","pad","remaining","mode","worst","stickify","rmax","rmin","ratio","stickies","sticky","padFunction","padConstant","µ","σ","logNormal","bates","irwinHall","ordinal","category10","d3_category10","category20","d3_category20","category20b","d3_category20b","category20c","d3_category20c","quantize","threshold","df","d3_svg_arcMax","linear-closed","step-before","step-after","basis","basis-open","basis-closed","cardinal","cardinal-open","cardinal-closed","monotone","radial","equals","curve","self","diagonal","p3","projection_","d3_svg_symbols","cross","diamond","d3_svg_symbolTan30","square","triangle-down","d3_svg_symbolSqrt3","triangle-up","symbolTypes","subnodes","nameNS","attrTween","attrTweenNS","styleString","styleTween","inheritId","id0","id1","create","axis","tickTransform","tickValues","tickArguments_","tickFormat_","tickEnter","tickExit","tickUpdate","pathUpdate","lineEnter","lineUpdate","textEnter","textUpdate","orient","innerTickSize","tickPadding","outerTickSize","d3_svg_axisDefaultOrient","d3_svg_axisOrients","tickSize","tickSubdivide","brush","brushstart","background","resize","resizes","d3_svg_brushCursor","gUpdate","backgroundUpdate","redrawX","redrawY","redraw","xExtent","yExtent","keydown","keyCode","dragging","keyup","brushmove","altKey","resizingX","move1","resizingY","event_","yClamp","xClamp","yExtentDomain","xExtentDomain","brushend","eventTarget","resizing","ex","ey","d3_svg_brushResizes","extent1","extent0","yi","clear","nw","ne","se","sw","d3_time_formatUtc","d3_time_formatIso","iso","second","seconds","minute","minutes","hour","timezone","hours","month","d3_time_scaleLocalMethods","d3_time_scaleLocalFormat","d3_time_scaleUtcMethods","d3_time_scaleUtcFormat","json","responseXML"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"d3.js","sources":["../../src/libs/d3.js"],"names":["d3_documentElement","node","ownerDocument","document","documentElement","d3_window","defaultView","d3_ascending","a","b","d3_number","x","d3_numeric","isNaN","d3_bisector","compare","left","lo","hi","arguments","length","mid","right","d3_zipLength","d","d3_range_integerScale","k","d3_class","ctor","properties","key","Object","defineProperty","prototype","value","enumerable","d3_Map","this","_","create","d3_map_escape","d3_map_proto","d3_map_zero","d3_map_unescape","slice","d3_map_has","d3_map_remove","d3_map_keys","keys","push","d3_map_size","size","d3_map_empty","d3_Set","d3_identity","d3_rebind","target","source","method","apply","d3_vendorSymbol","object","name","charAt","toUpperCase","i","n","d3_vendorPrefixes","prefixName","d3_noop","d3_dispatch","d3_dispatch_event","dispatch","event","l","z","listeners","on","listenerByName","listener","get","indexOf","concat","remove","set","d3_eventPreventDefault","d3","preventDefault","d3_eventSource","s","e","sourceEvent","d3_eventDispatch","of","thiz","argumentz","e1","e0","type","d3_selection","groups","d3_subclass","d3_selectionPrototype","d3_selection_selector","selector","d3_select","d3_selection_selectorAll","d3_selectAll","d3_selection_attr","attrNull","removeAttribute","attrNullNS","removeAttributeNS","space","local","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","ns","qualify","d3_collapse","trim","replace","d3_selection_classedRe","RegExp","requote","d3_selection_classes","split","d3_selection_classed","classedConstant","classedFunction","map","d3_selection_classedName","re","c","classList","add","getAttribute","lastIndex","test","d3_selection_style","priority","styleNull","style","removeProperty","styleConstant","setProperty","styleFunction","d3_selection_property","propertyNull","propertyConstant","propertyFunction","d3_selection_creator","namespace","namespaceURI","createElementNS","createElement","createNS","d3_selectionRemove","parent","parentNode","removeChild","d3_selection_dataNode","data","__data__","d3_selection_filter","d3_selectMatches","d3_selection_sortComparator","comparator","d3_selection_each","callback","j","m","group","d3_selection_enter","selection","d3_selection_enterPrototype","d3_selection_enterInsertBefore","enter","i0","j0","update","d3_selection_on","capture","onRemove","removeEventListener","$","onAdd","wrap","d3_array","call","addEventListener","removeAll","match","d3_selection_onListener","filter","d3_selection_onFilters","d3_selection_onFilter","o","related","relatedTarget","compareDocumentPosition","d3_event_dragSuppress","d3_event_dragId","click","w","select","d3_event_dragSelect","suppressClick","off","setTimeout","d3_mousePoint","container","changedTouches","svg","ownerSVGElement","createSVGPoint","point","d3_mouse_bug44083","window","scrollX","scrollY","append","position","top","margin","padding","border","ctm","getScreenCTM","f","pageX","y","pageY","clientX","clientY","matrixTransform","inverse","rect","getBoundingClientRect","clientLeft","clientTop","d3_behavior_dragTouchId","identifier","d3_sgn","d3_cross2d","d3_acos","π","Math","acos","d3_asin","halfπ","asin","d3_sinh","exp","d3_cosh","d3_tanh","d3_haversin","sin","d3_color","d3_hsl","h","d3_rgb_parse","d3_rgb_hsl","d3_hsl_rgb","v","m1","m2","vv","round","d3_rgb","d3_hcl","d3_lab","d3_lab_hcl","d3_rgb_lab","rgb","r","g","d3_hcl_lab","cos","d3_radians","d3_lab_rgb","d3_lab_xyz","d3_lab_X","d3_lab_Y","d3_lab_Z","d3_xyz_rgb","atan2","d3_degrees","sqrt","d3_xyz_lab","pow","d3_rgbNumber","d3_rgbString","d3_rgb_hex","max","toString","min","format","hsl","color","exec","parseFloat","d3_rgb_parseNumber","d3_rgb_names","toLowerCase","parseInt","d3_rgb_xyz","d3_functor","d3_xhrType","response","url","mimeType","d3_xhr","respond","result","status","request","d3_xhrHasResponse","xhr","error","load","headers","XMLHttpRequest","responseType","XDomainRequest","onload","onerror","onreadystatechange","readyState","onprogress","progress","header","forEach","send","open","setRequestHeader","overrideMimeType","beforesend","abort","rebind","d3_xhr_fixCallback","responseText","d3_timer_step","now","d3_timer_mark","delay","d3_timer_sweep","isFinite","clearTimeout","d3_timer_timeout","d3_timer_interval","d3_timer_frame","Date","d3_timer_active","d3_timer_queueHead","t","t0","t1","time","d3_timer_queueTail","d3_format_precision","p","ceil","log","LN10","d3_formatPrefix","abs","scale","symbol","d3_locale_numberFormat","locale","locale_decimal","decimal","locale_thousands","thousands","locale_grouping","grouping","locale_currency","currency","formatGroup","width","substring","reverse","join","specifier","d3_format_re","fill","align","sign","zfill","comma","precision","prefix","suffix","integer","exponent","d3_format_types","d3_format_typeDefault","zcomma","fullSuffix","negative","unit","formatPrefix","before","after","lastIndexOf","Array","d3_date_utc","UTC","d3_time_interval","step","number","date","d0","d1","offset","d3_date","range","dt","times","range_utc","utc","floor","d3_time_interval_utc","d3_locale_timeFormat","d3_time_format","template","string","charCodeAt","d3_time_formatPads","d3_time_formats","parse","H","M","S","L","Z","d3_time_parse","localZ","setFullYear","W","getDay","U","setHours","d3_time_parsers","d3_time_parseWeekdayAbbrev","d3_time_dayAbbrevRe","d3_time_dayAbbrevLookup","d3_time_parseWeekday","d3_time_dayRe","d3_time_dayLookup","d3_time_parseMonthAbbrev","d3_time_monthAbbrevRe","d3_time_monthAbbrevLookup","d3_time_parseMonth","d3_time_monthRe","d3_time_monthLookup","d3_time_parseLocaleFull","d3_time_parseLocaleDate","d3_time_parseLocaleTime","X","d3_time_parseAmPm","d3_time_periodLookup","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_days","days","locale_shortDays","shortDays","locale_months","months","locale_shortMonths","shortMonths","multi","d3_time_formatMulti","d3_time_formatRe","d3_time_formatLookup","A","getMonth","B","d3_time_formatPad","getDate","getHours","I","d3_time","dayOfYear","getMilliseconds","getMinutes","getSeconds","sundayOfYear","mondayOfYear","getFullYear","Y","d3_time_zone","%","d3_time_parseDay","d3_time_parseHour24","d3_time_parseDayOfYear","d3_time_parseMilliseconds","d3_time_parseMonthNumber","d3_time_parseMinutes","d3_time_parseSeconds","d3_time_parseWeekNumberSunday","d3_time_parseWeekdayNumber","d3_time_parseWeekNumberMonday","d3_time_parseYear","d3_time_parseFullYear","d3_time_parseZone","d3_time_parseLiteralPercent","names","d3_time_numberRe","d3_time_expandYear","getTimezoneOffset","zs","zh","zm","d3_time_percentRe","formats","d3_adder","d3_adderSum","bv","av","d3_geo_streamGeometry","geometry","d3_geo_streamGeometryType","hasOwnProperty","d3_geo_streamLine","coordinates","closed","coordinate","lineStart","lineEnd","d3_geo_streamPolygon","polygonStart","polygonEnd","d3_geo_areaRingStart","nextPoint","λ","φ","dλ","λ0","sdλ","adλ","cosφ","sinφ","sinφ0","u","cosφ0","d3_geo_areaRingSum","λ00","φ00","d3_geo_area","d3_geo_cartesian","spherical","d3_geo_cartesianDot","d3_geo_cartesianCross","d3_geo_cartesianAdd","d3_geo_cartesianScale","vector","d3_geo_cartesianNormalize","d3_geo_spherical","cartesian","d3_geo_sphericalEqual","ε","d3_geo_centroidPoint","d3_geo_centroidPointXYZ","d3_geo_centroidW0","d3_geo_centroidX0","d3_geo_centroidY0","d3_geo_centroidZ0","d3_geo_centroidLineStart","y0","z0","x0","d3_geo_centroidW1","d3_geo_centroidX1","d3_geo_centroidY1","d3_geo_centroidZ1","d3_geo_centroid","d3_geo_centroidLineEnd","d3_geo_centroidRingStart","cx","cy","cz","d3_geo_centroidX2","d3_geo_centroidY2","d3_geo_centroidZ2","d3_geo_compose","compose","invert","d3_true","d3_geo_clipPolygon","segments","clipStartInside","interpolate","subject","clip","segment","p0","p1","d3_geo_clipPolygonIntersection","sort","d3_geo_clipPolygonLinkCircular","entry","points","start","current","isSubject","array","other","d3_geo_clip","pointVisible","clipLine","clipStart","rotate","pointLine","line","pointRing","ring","ringListener","ringStart","ringEnd","clean","ringSegments","buffer","pop","polygon","polygonStarted","shift","d3_geo_clipSegmentLength1","rotatedClipStart","merge","d3_geo_pointInPolygon","d3_geo_clipSort","sphere","d3_geo_clipBufferListener","lines","rejoin","d3_geo_clipAntimeridianLine","φ0","sλ0","λ1","φ1","sλ1","d3_geo_clipAntimeridianIntersect","cosφ1","sinλ0_λ1","atan","d3_geo_clipAntimeridianInterpolate","from","to","direction","meridian","parallel","meridianNormal","polarAngle","winding","reset","point0","antimeridian","τ","arc","intersection","φarc","d3_geo_clipCircle","radius","visible","cr","c0","v0","v00","point2","point1","smallRadius","code","intersect","notHemisphere","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","uu","t2","q","δλ","polar","q1","d3_geo_circleInterpolate","d3_geom_clipLine","x1","y1","ax","ay","bx","by","dx","dy","d3_geo_clipExtent","corner","comparePoints","ca","cb","insidePolygon","wn","a1","linePoint","first","v_","x_","y_","x__","y__","v__","bufferListener","d3_geo_clipExtentMAX","listener_","inside","d3_geo_conic","projectAt","d3_geo_projectionMutator","parallels","d3_geo_conicEqualArea","forward","ρ","C","ρ0","ρ0_y","d3_geo_pathAreaRingStart","d3_geo_pathAreaPolygon","x00","y00","d3_geo_pathArea","d3_geo_pathBoundsPoint","d3_geo_pathBoundsX0","d3_geo_pathBoundsX1","d3_geo_pathBoundsY0","d3_geo_pathBoundsY1","d3_geo_pathBuffer","pointCircle","pointLineStart","stream","lineEndPolygon","d3_geo_pathBufferCircle","pointRadius","d3_geo_pathCentroidPoint","d3_geo_pathCentroidLineStart","d3_geo_pathCentroid","d3_geo_pathCentroidLineEnd","d3_geo_pathCentroidRingStart","d3_geo_pathContext","context","moveTo","lineTo","closePath","d3_geo_resample","project","resample","maxDepth","resampleRecursive","resampleNone","d3_geo_transformPoint","resampleLineTo","a0","b0","ringPoint","a00","b00","c00","b1","depth","d2","δ2","φ2","λ2","x2","y2","dx2","dy2","dz","cosMinDistance","d3_geo_pathProjectStream","d3_geo_projectionRadians","d3_geo_transform","d3_geo_projection","projection","projectRotate","δx","δy","d3_geo_rotation","δφ","δγ","center","invalidate","valid","projectResample","preclip","d3_geo_clipAntimeridian","postclip","clipAngle","clipExtent","output","translate","d3_geo_equirectangular","d3_geo_identityRotation","d3_geo_rotationλ","d3_geo_rotationφγ","d3_geo_forwardRotationλ","rotation","cosδφ","sinδφ","cosδγ","sinδγ","sr","d3_geo_circleAngle","angle","PI","d3_geo_graticuleX","d3_geo_graticuleY","d3_source","d3_target","d3_geo_interpolate","cy0","sy0","cy1","sy1","kx0","ky0","kx1","ky1","distance","d3_geo_lengthLineStart","cosΔλ","d3_geo_lengthSum","d3_geo_length","d3_geo_azimuthal","azimuthal","cosλ","sinc","cosc","d3_geo_conicConformal","F","tan","d3_geo_mercator","d3_geo_conicEquidistant","G","d3_geo_mercatorProjection","clipAuto","d3_geo_transverseMercator","d3_geom_pointX","d3_geom_pointY","d3_geom_hullUpper","hull","hs","d3_geom_hullOrder","d3_geom_polygonInside","d3_geom_polygonIntersect","x3","x21","x43","y3","y21","y43","ua","d3_geom_polygonClosed","d3_geom_voronoiBeach","d3_geom_voronoiRedBlackNode","edge","site","circle","d3_geom_voronoiCreateBeach","beach","d3_geom_voronoiBeachPool","d3_geom_voronoiDetachBeach","d3_geom_voronoiDetachCircle","d3_geom_voronoiBeaches","d3_geom_voronoiRemoveBeach","vertex","previous","P","next","N","disappearing","lArc","unshift","rArc","iArc","nArcs","d3_geom_voronoiSetEdgeEnd","d3_geom_voronoiCreateEdge","d3_geom_voronoiAttachCircle","d3_geom_voronoiAddBeach","dxl","dxr","directrix","d3_geom_voronoiLeftBreakPoint","d3_geom_voronoiRightBreakPoint","R","newArc","insert","lSite","rSite","hb","hc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","d3_geom_voronoiCell","edges","d3_geom_voronoiCloseCells","extent","cell","iHalfEdge","halfEdges","nHalfEdges","end","cells","d3_geom_voronoiCells","iCell","prepare","splice","d3_geom_voronoiHalfEdge","d3_geom_voronoiCreateBorderEdge","d3_geom_voronoiHalfEdgeOrder","d3_geom_voronoiCircle","cSite","ε2","ha","d3_geom_voronoiCirclePool","d3_geom_voronoiCircles","d3_geom_voronoiFirstCircle","d3_geom_voronoiClipEdges","d3_geom_voronoiEdges","d3_geom_voronoiConnectEdge","vb","fm","fb","va","lx","ly","rx","ry","fx","fy","d3_geom_voronoiEdge","d3_geom_voronoiRedBlackTree","d3_geom_voronoiRedBlackRotateLeft","tree","d3_geom_voronoiRedBlackRotateRight","d3_geom_voronoiRedBlackFirst","d3_geom_voronoi","sites","bbox","d3_geom_voronoiVertexOrder","diagram","d3_geom_voronoiTriangleArea","d3_geom_quadtreeCompatX","d3_geom_quadtreeCompatY","d3_geom_quadtreeNode","leaf","nodes","d3_geom_quadtreeVisit","sx","sy","children","d3_geom_quadtreeFind","root","closestPoint","minDistance2","find","distance2","xm","ym","below","d3_interpolateRgb","ar","ag","ab","br","bg","bb","d3_interpolateObject","d3_interpolate","d3_interpolateNumber","d3_interpolateString","am","bm","bs","bi","d3_interpolate_numberA","d3_interpolate_numberB","index","interpolators","d3_interpolateArray","na","nb","n0","d3_ease_clamp","d3_ease_reverse","d3_ease_reflect","d3_ease_quad","d3_ease_cubic","d3_ease_cubicInOut","t3","d3_ease_poly","d3_ease_sin","d3_ease_exp","d3_ease_circle","d3_ease_elastic","d3_ease_back","d3_ease_bounce","d3_interpolateHcl","hcl","ah","ac","al","bh","bc","bl","d3_interpolateHsl","as","d3_interpolateLab","lab","aa","ba","d3_interpolateRound","d3_transform","r0","r1","kx","d3_transformNormalize","kz","d3_transformDot","ky","d3_transformCombine","skew","d3_interpolateTransform","transform","ta","tb","ra","rb","wa","wb","ka","kb","d3_uninterpolateNumber","d3_uninterpolateClamp","d3_layout_bundlePath","link","lca","d3_layout_bundleLeastCommonAncestor","d3_layout_bundleAncestors","ancestors","aNodes","bNodes","aNode","bNode","sharedNode","d3_layout_forceDragstart","fixed","d3_layout_forceDragend","d3_layout_forceMouseover","px","py","d3_layout_forceMouseout","d3_layout_forceAccumulate","quad","alpha","charges","charge","random","pointCharge","d3_layout_hierarchyRebind","hierarchy","links","d3_layout_hierarchyLinks","d3_layout_hierarchyVisitBefore","d3_layout_hierarchyVisitAfter","nodes2","d3_layout_hierarchyChildren","d3_layout_hierarchyValue","d3_layout_hierarchySort","child","d3_layout_stackX","d3_layout_stackY","d3_layout_stackOut","d3_layout_stackOrderDefault","d3_layout_stackOffsetZero","d3_layout_stackMaxIndex","d3_layout_stackReduceSum","reduce","d3_layout_stackSum","d3_layout_histogramBinSturges","values","d3_layout_histogramBinFixed","LN2","d3_layout_histogramRange","d3_layout_packSort","d3_layout_packInsert","_pack_next","_pack_prev","d3_layout_packSplice","d3_layout_packIntersects","dr","d3_layout_packSiblings","bound","xMin","xMax","yMin","yMax","d3_layout_packLink","d3_layout_packPlace","isect","s1","s2","d3_layout_packUnlink","d3_layout_packTransform","db","da","dc","d3_layout_treeSeparation","d3_layout_treeLeft","d3_layout_treeRight","d3_layout_treeMove","wm","wp","change","d3_layout_treeShift","d3_layout_treeAncestor","vim","ancestor","d3_layout_clusterY","d3_layout_clusterX","d3_layout_clusterLeft","d3_layout_clusterRight","d3_layout_treemapPadNull","d3_layout_treemapPad","d3_scaleExtent","domain","stop","d3_scaleRange","rangeExtent","d3_scale_bilinear","uninterpolate","d3_scale_nice","nice","i1","d3_scale_niceStep","d3_scale_niceIdentity","d3_scale_polylinear","bisect","d3_scale_linear","clamp","rescale","linear","input","Number","rangeRound","ticks","d3_scale_linearTicks","tickFormat","d3_scale_linearTickFormat","d3_scale_linearNice","copy","d3_scale_linearRebind","d3_scale_linearTickRange","span","err","d3_scale_linearPrecision","d3_scale_linearFormatPrecision","d3_scale_linearFormatSignificant","d3_scale_log","base","positive","niced","d3_scale_logNiceNegative","d3_scale_logFormat","d3_scale_pow","powp","d3_scale_powPow","powb","d3_scale_ordinal","ranger","steps","rangeBand","xi","has","rangePoints","rangeRoundPoints","rangeBands","outerPadding","rangeRoundBands","d3_scale_quantile","thresholds","quantile","quantiles","invertExtent","d3_scale_quantize","d3_scale_threshold","d3_scale_identity","identity","d3_zero","d3_svg_arcInnerRadius","innerRadius","d3_svg_arcOuterRadius","outerRadius","d3_svg_arcStartAngle","startAngle","d3_svg_arcEndAngle","endAngle","d3_svg_arcPadAngle","padAngle","d3_svg_arcSweep","d3_svg_arcCornerTangents","rc","cw","x01","y01","ox","oy","D","cx0","cx1","dx0","dy0","dx1","dy1","d3_svg_line","tension","defined","d3_svg_lineLinear","interpolateKey","d3_svg_lineInterpolators","d3_svg_lineLinearClosed","d3_svg_lineStep","path","d3_svg_lineStepBefore","d3_svg_lineStepAfter","d3_svg_lineCardinalOpen","d3_svg_lineHermite","d3_svg_lineCardinalTangents","d3_svg_lineCardinalClosed","d3_svg_lineCardinal","tangents","pi","lp","p2","d3_svg_lineBasis","d3_svg_lineDot4","d3_svg_lineBasisBezier3","d3_svg_lineBasisBezier","d3_svg_lineBasisOpen","d3_svg_lineBasisClosed","d3_svg_lineBundle","d3_svg_lineBasisBezier1","d3_svg_lineBasisBezier2","d3_svg_lineSlope","d3_svg_lineFiniteDifferences","d3_svg_lineMonotoneTangents","d3_svg_lineMonotone","d3_svg_lineRadial","d3_svg_area","area","points1","interpolateReverse","points0","fx0","fy0","fx1","fy1","d3_svg_chordRadius","d3_svg_diagonalProjection","d3_svg_diagonalRadialProjection","d3_svg_symbolSize","d3_svg_symbolType","d3_svg_symbolCircle","d3_selection_interruptNS","lock","active","count","interrupt","d3_transition","id","d3_transitionPrototype","d3_transition_tween","tween","d3_transition_text","textContent","d3_transitionNamespace","d3_transitionNode","inherit","transition","duration","ease","timer","elapsed","tweened","tick","d3_svg_axisX","attr","d3_svg_axisY","d3_time_formatIsoNative","toISOString","d3_time_scale","methods","tickMethod","d3_time_scaleSteps","year","d3_time_scaleMilliseconds","d3_time_scaleDate","interval","skip","skipped","d3_json","JSON","d3_html","d3_document","createRange","selectNode","body","createContextualFragment","version","d3_arraySlice","list","childNodes","nodeType","d3_element_prototype","Element","d3_element_setAttribute","d3_element_setAttributeNS","d3_style_prototype","CSSStyleDeclaration","d3_style_setProperty","ascending","descending","sum","mean","median","numbers","variance","deviation","d3_bisect","bisectLeft","bisectRight","bisector","shuffle","permute","indexes","permutes","pairs","zip","zips","transpose","matrix","entries","arrays","merged","Error","isArray","empty","nest","mapType","rollup","sortValues","keyValue","setter","valuesByKey","sortKey","sortKeys","keyMap","order","behavior","d3_requote_re","__proto__","property","querySelector","querySelectorAll","d3_selectMatcher","matches","Sizzle","matchesSelector","subgroup","subnode","subgroups","selectAll","d3_nsPrefix","xhtml","xlink","xml","xmlns","getAttributeNS","each","classed","contains","getComputedStyle","getPropertyValue","text","html","innerHTML","appendChild","insertBefore","bind","groupData","nodeData","updateNodes","enterNodes","exitNodes","nodeByKeyValue","keyValues","exit","datum","nextSibling","args","upgroup","mouseenter","mouseleave","mouse","navigator","userAgent","touch","touches","drag","mousedown","touchstart","dragstart","move","moved","position1","dragId","position0","dragged","dragOffset","ended","dragSubject","dragName","dragRestore","that","origin","τε","SQRT2","ρ2","ρ4","interpolateZoom","coshr0","w0","ux0","uy0","ux1","uy1","w1","zoom","mousedowned","d3_behavior_zoomWheel","mousewheeled","dblclicked","touchstarted","location","view","scaleTo","scaleExtent","translateTo","zoomTo","__chart__","center0","zoomstarted","zooming","zoomed","zoomended","location0","mousemove","mouseup","d3_selection_interrupt","relocate","scale0","locations0","started","touchmove","touchend","targets","changed","touchtime","distance0","l0","l1","distance1","scale1","zoomName","mousewheelTimer","translate0","d3_behavior_zoomDelta","shiftKey","d3_behavior_zoomInfinity","deltaY","deltaMode","wheelDelta","detail","view1","d3_transitionInheritId","d3_hslPrototype","brighter","darker","d3_hclPrototype","d3_lab_K","d3_labPrototype","d3_rgbPrototype","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","functor","dsv","delimiter","row","typedResponse","formatRow","formatValue","reFormat","delimiterCode","parseRows","Function","stringify","token","EOF","eol","EOL","rows","formatRows","fieldSet","fields","field","csv","tsv","then","flush","d3_formatPrefixes","String","fromCharCode","toPrecision","toExponential","toFixed","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","getTime","valueOf","setDate","d3_time_prototype","setUTCDate","setDay","setUTCDay","setUTCFullYear","setUTCHours","setMilliseconds","setUTCMilliseconds","setMinutes","setUTCMinutes","setMonth","setUTCMonth","setSeconds","setUTCSeconds","setTime","day","years","week","sunday","weeks","weekOfYear","-","0","numberFormat","timeFormat","d3_locale_enUS","geo","d3_adderTemp","d3_geo_streamObjectType","Feature","feature","FeatureCollection","features","Sphere","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","GeometryCollection","geometries","d3_geo_areaSum","bounds","ranges","normal","equatorial","inflection","λ_","λi","φi","dλSum","λ__","φ__","compareRanges","withinRange","best","centroid","conicEqualArea","raw","albers","albersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","lower48Stream","alaskaStream","hawaiiStream","d3_geo_pathAreaSum","d3_geo_pathBounds","contextStream","cacheStream","projectStream","projectionMutator","equirectangular","Δλ","sinΔλ","sinφ1","graticule","X0","DX","X1","Y0","DY","Y1","outline","majorExtent","minorExtent","majorStep","minorStep","greatArc","source_","target_","d3_geo_azimuthalEqualArea","cosλcosφ","azimuthalEqualArea","d3_geo_azimuthalEquidistant","azimuthalEquidistant","conicConformal","conicEquidistant","d3_geo_gnomonic","gnomonic","mercator","d3_geo_orthographic","orthographic","d3_geo_stereographic","stereographic","transverseMercator","geom","vertices","flippedPoints","upper","lower","skipLeft","skipRight","d3_geom_polygonPrototype","grandpa","uncle","sibling","voronoi","polygons","d3_geom_voronoiClipExtent","triangles","s0","delaunay","quadtree","nx","ny","insertChild","nPoint","xs","ys","x1_","y1_","x2_","y2_","compat","visit","interpolateRgb","interpolateObject","interpolateNumber","interpolateString","interpolateArray","d3_ease_default","d3_ease","poly","cubic","elastic","back","bounce","d3_ease_mode","in","out","in-out","out-in","interpolateHcl","interpolateHsl","interpolateLab","interpolateRound","baseVal","consolidate","d3_transformIdentity","interpolateTransform","layout","bundle","paths","chord","relayout","groupSums","groupIndex","subgroupIndex","chords","sortGroups","sortSubgroups","di","dj","subindex","sortChords","resort","force","repulse","dw","dn","theta2","chargeDistance2","dragmove","resume","distances","strengths","friction","linkDistance","d3_layout_forceLinkDistance","linkStrength","d3_layout_forceLinkStrength","d3_layout_forceChargeDistance2","gravity","weight","chargeDistance","theta","dimension","neighbors","candidates","stack","childs","revalue","partition","pie","arcs","d3_layout_pieSortByValue","series","orders","offsets","d3_layout_stackOrders","d3_layout_stackOffsets","inside-out","sums","bottom","tops","bottoms","default","silhouette","wiggle","s3","o0","expand","zero","histogram","bin","bins","valuer","binner","frequency","pack","root0","root1","wrapTree","firstWalk","secondWalk","nodeSize","sizeNode","tx","separation","node1","queue","siblings","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","cluster","previousNode","treemap","squarify","score","pad","remaining","mode","worst","stickify","rmax","rmin","ratio","stickies","sticky","padFunction","padConstant","µ","σ","logNormal","bates","irwinHall","ordinal","category10","d3_category10","category20","d3_category20","category20b","d3_category20b","category20c","d3_category20c","quantize","threshold","circleSegment","rp","ap","padRadius","d3_svg_arcAuto","h1","h0","cornerRadius","oc","kc","lc","rc1","t30","t12","rc0","t03","t21","linear-closed","step-before","step-after","basis","basis-open","basis-closed","cardinal","cardinal-open","cardinal-closed","monotone","radial","equals","curve","self","diagonal","p3","projection_","d3_svg_symbols","cross","diamond","d3_svg_symbolTan30","square","triangle-down","d3_svg_symbolSqrt3","triangle-up","symbolTypes","d3_transitionId","d3_transitionInherit","subnodes","nameNS","attrTween","attrTweenNS","styleString","styleTween","inheritId","id0","id1","axis","tickTransform","tickValues","tickArguments_","tickFormat_","tickEnter","tickExit","tickUpdate","tickSpacing","innerTickSize","tickPadding","pathUpdate","lineEnter","lineUpdate","textEnter","textUpdate","orient","outerTickSize","d3_svg_axisDefaultOrient","d3_svg_axisOrients","tickSize","tickSubdivide","brush","brushstart","background","resize","resizes","d3_svg_brushCursor","gUpdate","backgroundUpdate","redrawX","redrawY","redraw","xExtent","yExtent","keydown","keyCode","dragging","keyup","brushmove","altKey","resizingX","move1","resizingY","event_","yClamp","xClamp","yExtentDomain","xExtentDomain","brushend","eventTarget","resizing","ex","ey","d3_svg_brushResizes","extent1","extent0","yi","clear","nw","ne","se","sw","d3_time_formatUtc","d3_time_formatIso","iso","second","seconds","minute","minutes","hour","timezone","hours","month","d3_time_scaleLocalMethods","d3_time_scaleLocalFormat","d3_time_scaleUtcMethods","d3_time_scaleUtcFormat","json","responseXML","define","amd","module","exports"],"mappings":"CAAC,WAQC,QAASA,GAAmBC,GAC1B,MAAOA,KAASA,EAAKC,eAAiBD,EAAKE,UAAYF,GAAMG,gBAE/D,QAASC,GAAUJ,GACjB,MAAOA,KAASA,EAAKC,eAAiBD,EAAKC,cAAcI,aAAeL,EAAKE,UAAYF,GAAQA,EAAKK,aAiCxG,QAASC,GAAaC,EAAGC,GACvB,MAAWA,GAAJD,EAAQ,GAAKA,EAAIC,EAAI,EAAID,GAAKC,EAAI,MA8D3C,QAASC,GAAUC,GACjB,MAAa,QAANA,OAAoBA,EAE7B,QAASC,GAAWD,GAClB,OAAQE,MAAMF,GA0DhB,QAASG,GAAYC,GACnB,OACEC,KAAM,SAASR,EAAGG,EAAGM,EAAIC,GAGvB,IAFIC,UAAUC,OAAS,IAAGH,EAAK,GAC3BE,UAAUC,OAAS,IAAGF,EAAKV,EAAEY,QACrBF,EAALD,GAAS,CACd,GAAII,GAAMJ,EAAKC,IAAO,CAClBH,GAAQP,EAAEa,GAAMV,GAAK,EAAGM,EAAKI,EAAM,EAAQH,EAAKG,EAEtD,MAAOJ,IAETK,MAAO,SAASd,EAAGG,EAAGM,EAAIC,GAGxB,IAFIC,UAAUC,OAAS,IAAGH,EAAK,GAC3BE,UAAUC,OAAS,IAAGF,EAAKV,EAAEY,QACrBF,EAALD,GAAS,CACd,GAAII,GAAMJ,EAAKC,IAAO,CAClBH,GAAQP,EAAEa,GAAMV,GAAK,EAAGO,EAAKG,EAAUJ,EAAKI,EAAM,EAExD,MAAOJ,KA2Cb,QAASM,GAAaC,GACpB,MAAOA,GAAEJ,OAmDX,QAASK,GAAsBd,GAE7B,IADA,GAAIe,GAAI,EACDf,EAAIe,EAAI,GAAGA,GAAK,EACvB,OAAOA,GAET,QAASC,GAASC,EAAMC,GACtB,IAAK,GAAIC,KAAOD,GACdE,OAAOC,eAAeJ,EAAKK,UAAWH,GACpCI,MAAOL,EAAWC,GAClBK,YAAY,IAkBlB,QAASC,KACPC,KAAKC,EAAIP,OAAOQ,OAAO,MAgCzB,QAASC,GAAcV,GACrB,OAAQA,GAAO,MAAQW,IAAgBX,EAAI,KAAOY,GAAcA,GAAcZ,EAAMA,EAEtF,QAASa,GAAgBb,GACvB,OAAQA,GAAO,IAAI,KAAOY,GAAcZ,EAAIc,MAAM,GAAKd,EAEzD,QAASe,GAAWf,GAClB,MAAOU,GAAcV,IAAQO,MAAKC,EAEpC,QAASQ,GAAchB,GACrB,OAAQA,EAAMU,EAAcV,KAASO,MAAKC,SAAYD,MAAKC,EAAER,GAE/D,QAASiB,KACP,GAAIC,KACJ,KAAK,GAAIlB,KAAOO,MAAKC,EAAGU,EAAKC,KAAKN,EAAgBb,GAClD,OAAOkB,GAET,QAASE,KACP,GAAIC,GAAO,CACX,KAAK,GAAIrB,KAAOO,MAAKC,IAAKa,CAC1B,OAAOA,GAET,QAASC,KACP,IAAK,GAAItB,KAAOO,MAAKC,EAAG,OAAO,CAC/B,QAAO,EAsET,QAASe,KACPhB,KAAKC,EAAIP,OAAOQ,OAAO,MAiBzB,QAASe,GAAY9B,GACnB,MAAOA,GAOT,QAAS+B,GAAUC,EAAQC,EAAQC,GACjC,MAAO,YACL,GAAIxB,GAAQwB,EAAOC,MAAMF,EAAQtC,UACjC,OAAOe,KAAUuB,EAASD,EAAStB,GAGvC,QAAS0B,GAAgBC,EAAQC,GAC/B,GAAIA,IAAQD,GAAQ,MAAOC,EAC3BA,GAAOA,EAAKC,OAAO,GAAGC,cAAgBF,EAAKlB,MAAM,EACjD,KAAK,GAAIqB,GAAI,EAAGC,EAAIC,GAAkB/C,OAAY8C,EAAJD,IAASA,EAAG,CACxD,GAAIG,GAAaD,GAAkBF,GAAKH,CACxC,IAAIM,IAAcP,GAAQ,MAAOO,IAIrC,QAASC,MAMT,QAASC,MAeT,QAASC,GAAkBC,GAEzB,QAASC,KAEP,IADA,GAAyCC,GAArCC,EAAIC,EAAWX,EAAI,GAAIC,EAAIS,EAAEvD,SACxB6C,EAAIC,IAAOQ,EAAIC,EAAEV,GAAGY,KAAIH,EAAEf,MAAMtB,KAAMlB,UAC/C,OAAOqD,GAJT,GAAII,MAAgBE,EAAiB,GAAI1C,EAmBzC,OAbAqC,GAAMI,GAAK,SAASf,EAAMiB,GACxB,GAAkCd,GAA9BS,EAAII,EAAeE,IAAIlB,EAC3B,OAAI3C,WAAUC,OAAS,EAAUsD,GAAKA,EAAEG,IACpCH,IACFA,EAAEG,GAAK,KACPD,EAAYA,EAAUhC,MAAM,EAAGqB,EAAIW,EAAUK,QAAQP,IAAIQ,OAAON,EAAUhC,MAAMqB,EAAI,IACpFa,EAAeK,OAAOrB,IAEpBiB,GAAUH,EAAU3B,KAAK6B,EAAeM,IAAItB,GAC9Ce,GAAIE,KAECP,IAEFC,EAGT,QAASY,KACPC,GAAGb,MAAMc,iBAEX,QAASC,KAEP,IADA,GAAkBC,GAAdC,EAAIJ,GAAGb,MACJgB,EAAIC,EAAEC,aAAaD,EAAID,CAC9B,OAAOC,GAET,QAASE,GAAiBpC,GAExB,IADA,GAAIgB,GAAW,GAAIF,GAAeL,EAAI,EAAGC,EAAI/C,UAAUC,SAC9C6C,EAAIC,GAAGM,EAASrD,UAAU8C,IAAMM,EAAkBC,EAa3D,OAZAA,GAASqB,GAAK,SAASC,EAAMC,GAC3B,MAAO,UAASC,GACd,IACE,GAAIC,GAAKD,EAAGL,YAAcL,GAAGb,KAC7BuB,GAAGxC,OAASA,EACZ8B,GAAGb,MAAQuB,EACXxB,EAASwB,EAAGE,MAAMvC,MAAMmC,EAAMC,GAC9B,QACAT,GAAGb,MAAQwB,KAIVzB,EAWT,QAAS2B,GAAaC,GAEpB,MADAC,IAAYD,EAAQE,IACbF,EAyCT,QAASG,GAAsBC,GAC7B,MAA2B,kBAAbA,GAA0BA,EAAW,WACjD,MAAOC,IAAUD,EAAUnE,OAgB/B,QAASqE,GAAyBF,GAChC,MAA2B,kBAAbA,GAA0BA,EAAW,WACjD,MAAOG,IAAaH,EAAUnE,OAoClC,QAASuE,GAAkB9C,EAAM5B,GAE/B,QAAS2E,KACPxE,KAAKyE,gBAAgBhD,GAEvB,QAASiD,KACP1E,KAAK2E,kBAAkBlD,EAAKmD,MAAOnD,EAAKoD,OAE1C,QAASC,KACP9E,KAAK+E,aAAatD,EAAM5B,GAE1B,QAASmF,KACPhF,KAAKiF,eAAexD,EAAKmD,MAAOnD,EAAKoD,MAAOhF,GAE9C,QAASqF,KACP,GAAI5G,GAAIuB,EAAMyB,MAAMtB,KAAMlB,UACjB,OAALR,EAAW0B,KAAKyE,gBAAgBhD,GAAYzB,KAAK+E,aAAatD,EAAMnD,GAE1E,QAAS6G,KACP,GAAI7G,GAAIuB,EAAMyB,MAAMtB,KAAMlB,UACjB,OAALR,EAAW0B,KAAK2E,kBAAkBlD,EAAKmD,MAAOnD,EAAKoD,OAAa7E,KAAKiF,eAAexD,EAAKmD,MAAOnD,EAAKoD,MAAOvG,GAElH,MArBAmD,GAAOwB,GAAGmC,GAAGC,QAAQ5D,GAqBL,MAAT5B,EAAgB4B,EAAKoD,MAAQH,EAAaF,EAA4B,kBAAV3E,GAAuB4B,EAAKoD,MAAQM,EAAiBD,EAAezD,EAAKoD,MAAQG,EAAiBF,EAEvK,QAASQ,GAAYlC,GACnB,MAAOA,GAAEmC,OAAOC,QAAQ,OAAQ,KAmBlC,QAASC,GAAuBhE,GAC9B,MAAO,IAAIiE,QAAO,aAAezC,GAAG0C,QAAQlE,GAAQ,aAAc,KAEpE,QAASmE,GAAqBnE,GAC5B,OAAQA,EAAO,IAAI8D,OAAOM,MAAM,SAElC,QAASC,GAAqBrE,EAAM5B,GAGlC,QAASkG,KAEP,IADA,GAAInE,GAAI,KACCA,EAAIC,GAAGJ,EAAKG,GAAG5B,KAAMH,GAEhC,QAASmG,KAEP,IADA,GAAIpE,GAAI,GAAItD,EAAIuB,EAAMyB,MAAMtB,KAAMlB,aACzB8C,EAAIC,GAAGJ,EAAKG,GAAG5B,KAAM1B,GARhCmD,EAAOmE,EAAqBnE,GAAMwE,IAAIC,EACtC,IAAIrE,GAAIJ,EAAK1C,MASb,OAAwB,kBAAVc,GAAuBmG,EAAkBD,EAEzD,QAASG,GAAyBzE,GAChC,GAAI0E,GAAKV,EAAuBhE,EAChC,OAAO,UAAS7D,EAAMiC,GACpB,GAAIuG,EAAIxI,EAAKyI,UAAW,MAAOxG,GAAQuG,EAAEE,IAAI7E,GAAQ2E,EAAEtD,OAAOrB,EAC9D,IAAI2E,GAAIxI,EAAK2I,aAAa,UAAY,EAClC1G,IACFsG,EAAGK,UAAY,EACVL,EAAGM,KAAKL,IAAIxI,EAAKmH,aAAa,QAASO,EAAYc,EAAI,IAAM3E,KAElE7D,EAAKmH,aAAa,QAASO,EAAYc,EAAEZ,QAAQW,EAAI,QAoB3D,QAASO,GAAmBjF,EAAM5B,EAAO8G,GACvC,QAASC,KACP5G,KAAK6G,MAAMC,eAAerF,GAE5B,QAASsF,KACP/G,KAAK6G,MAAMG,YAAYvF,EAAM5B,EAAO8G,GAEtC,QAASM,KACP,GAAI3I,GAAIuB,EAAMyB,MAAMtB,KAAMlB,UACjB,OAALR,EAAW0B,KAAK6G,MAAMC,eAAerF,GAAYzB,KAAK6G,MAAMG,YAAYvF,EAAMnD,EAAGqI,GAEvF,MAAgB,OAAT9G,EAAgB+G,EAA6B,kBAAV/G,GAAuBoH,EAAgBF,EAUnF,QAASG,GAAsBzF,EAAM5B,GACnC,QAASsH,WACAnH,MAAKyB,GAEd,QAAS2F,KACPpH,KAAKyB,GAAQ5B,EAEf,QAASwH,KACP,GAAI/I,GAAIuB,EAAMyB,MAAMtB,KAAMlB,UACjB,OAALR,QAAkB0B,MAAKyB,GAAYzB,KAAKyB,GAAQnD,EAEtD,MAAgB,OAATuB,EAAgBsH,EAAgC,kBAAVtH,GAAuBwH,EAAmBD,EA4BzF,QAASE,GAAqB7F,GAC5B,QAASvB,KACP,GAAIpC,GAAWkC,KAAKnC,cAAe0J,EAAYvH,KAAKwH,YACpD,OAAOD,GAAYzJ,EAAS2J,gBAAgBF,EAAW9F,GAAQ3D,EAAS4J,cAAcjG,GAExF,QAASkG,KACP,MAAO3H,MAAKnC,cAAc4J,gBAAgBhG,EAAKmD,MAAOnD,EAAKoD,OAE7D,MAAuB,kBAATpD,GAAsBA,GAAQA,EAAOwB,GAAGmC,GAAGC,QAAQ5D,IAAOoD,MAAQ8C,EAAWzH,EAY7F,QAAS0H,KACP,GAAIC,GAAS7H,KAAK8H,UACdD,IAAQA,EAAOE,YAAY/H,MAiFjC,QAASgI,GAAsBC,GAC7B,OACEC,SAAUD,GAoBd,QAASE,GAAoBhE,GAC3B,MAAO,YACL,MAAOiE,IAAiBpI,KAAMmE,IAmBlC,QAASkE,GAA4BC,GAEnC,MADKxJ,WAAUC,SAAQuJ,EAAapK,GAC7B,SAASC,EAAGC,GACjB,MAAOD,IAAKC,EAAIkK,EAAWnK,EAAE+J,SAAU9J,EAAE8J,WAAa/J,GAAKC,GAQ/D,QAASmK,GAAkBxE,EAAQyE,GACjC,IAAK,GAAIC,GAAI,EAAGC,EAAI3E,EAAOhF,OAAY2J,EAAJD,EAAOA,IACxC,IAAK,GAAgD7K,GAA5C+K,EAAQ5E,EAAO0E,GAAI7G,EAAI,EAAGC,EAAI8G,EAAM5J,OAAkB8C,EAAJD,EAAOA,KAC5DhE,EAAO+K,EAAM/G,KAAI4G,EAAS5K,EAAMgE,EAAG6G,EAG3C,OAAO1E,GA0BT,QAAS6E,GAAmBC,GAE1B,MADA7E,IAAY6E,EAAWC,IAChBD,EA+BT,QAASE,GAA+BC,GACtC,GAAIC,GAAIC,CACR,OAAO,UAAS/J,EAAGyC,EAAG6G,GACpB,GAA+C7K,GAA3C+K,EAAQK,EAAMP,GAAGU,OAAQtH,EAAI8G,EAAM5J,MAGvC,KAFI0J,GAAKS,IAAIA,EAAKT,EAAGQ,EAAK,GACtBrH,GAAKqH,IAAIA,EAAKrH,EAAI,KACbhE,EAAO+K,EAAMM,OAAUA,EAAKpH,IACrC,MAAOjE,IAsCX,QAASwL,GAAgBvF,EAAMnB,EAAU2G,GAKvC,QAASC,KACP,GAAIjH,GAAIrC,KAAKyB,EACTY,KACFrC,KAAKuJ,oBAAoB1F,EAAMxB,EAAGA,EAAEmH,SAC7BxJ,MAAKyB,IAGhB,QAASgI,KACP,GAAIpH,GAAIqH,EAAKhH,EAAUiH,GAAS7K,WAChCwK,GAASM,KAAK5J,MACdA,KAAK6J,iBAAiBhG,EAAM7D,KAAKyB,GAAQY,EAAGA,EAAEmH,EAAIH,GAClDhH,EAAEpC,EAAIyC,EAER,QAASoH,KACP,GAA8DC,GAA1D5D,EAAK,GAAIT,QAAO,eAAiBzC,GAAG0C,QAAQ9B,GAAQ,IACxD,KAAK,GAAIpC,KAAQzB,MACf,GAAI+J,EAAQtI,EAAKsI,MAAM5D,GAAK,CAC1B,GAAI9D,GAAIrC,KAAKyB,EACbzB,MAAKuJ,oBAAoBQ,EAAM,GAAI1H,EAAGA,EAAEmH,SACjCxJ,MAAKyB,IAvBlB,GAAIA,GAAO,OAASoC,EAAMjC,EAAIiC,EAAKjB,QAAQ,KAAM8G,EAAOM,CACpDpI,GAAI,IAAGiC,EAAOA,EAAKtD,MAAM,EAAGqB,GAChC,IAAIqI,GAASC,GAAuBvH,IAAIkB,EAyBxC,OAxBIoG,KAAQpG,EAAOoG,EAAQP,EAAOS,GAwB3BvI,EAAIc,EAAW+G,EAAQH,EAAW5G,EAAWV,EAAU8H,EAWhE,QAASE,GAAwBtH,EAAUgB,GACzC,MAAO,UAASL,GACd,GAAI+G,GAAInH,GAAGb,KACXa,IAAGb,MAAQiB,EACXK,EAAU,GAAK1D,KAAKkI,QACpB,KACExF,EAASpB,MAAMtB,KAAM0D,GACrB,QACAT,GAAGb,MAAQgI,IAIjB,QAASD,GAAsBzH,EAAUgB,GACvC,GAAIrB,GAAI2H,EAAwBtH,EAAUgB,EAC1C,OAAO,UAASL,GACd,GAAIlC,GAASnB,KAAMqK,EAAUhH,EAAEiH,aAC1BD,KAAWA,IAAYlJ,GAAsD,EAA1CkJ,EAAQE,wBAAwBpJ,KACtEkB,EAAEuH,KAAKzI,EAAQkC,IAKrB,QAASmH,GAAsB5M,GAC7B,GAAI6D,GAAO,oBAAqBgJ,GAAiBC,EAAQ,QAAUjJ,EAAMkJ,EAAI1H,GAAG2H,OAAO5M,EAAUJ,IAAO4E,GAAG,YAAcf,EAAMuB,GAAwBR,GAAG,YAAcf,EAAMuB,GAAwBR,GAAG,cAAgBf,EAAMuB,EAI/N,IAH2B,MAAvB6H,KACFA,GAAsB,iBAAmBjN,IAAO,EAAQ2D,EAAgB3D,EAAKiJ,MAAO,eAElFgE,GAAqB,CACvB,GAAIhE,GAAQlJ,EAAmBC,GAAMiJ,MAAO+D,EAAS/D,EAAMgE,GAC3DhE,GAAMgE,IAAuB,OAE/B,MAAO,UAASC,GAGd,GAFAH,EAAEnI,GAAGf,EAAM,MACPoJ,KAAqBhE,EAAMgE,IAAuBD,GAClDE,EAAe,CACjB,GAAIC,GAAM,WACRJ,EAAEnI,GAAGkI,EAAO,MAEdC,GAAEnI,GAAGkI,EAAO,WACV1H,IACA+H,MACC,GACHC,WAAWD,EAAK,KAQtB,QAASE,GAAcC,EAAW7H,GAC5BA,EAAE8H,iBAAgB9H,EAAIA,EAAE8H,eAAe,GAC3C,IAAIC,GAAMF,EAAUG,iBAAmBH,CACvC,IAAIE,EAAIE,eAAgB,CACtB,GAAIC,GAAQH,EAAIE,gBAChB,IAAwB,EAApBE,GAAuB,CACzB,GAAIC,GAASzN,EAAUkN,EACvB,IAAIO,EAAOC,SAAWD,EAAOE,QAAS,CACpCP,EAAMnI,GAAG2H,OAAO,QAAQgB,OAAO,OAAO/E,OACpCgF,SAAU,WACVC,IAAK,EACLnN,KAAM,EACNoN,OAAQ,EACRC,QAAS,EACTC,OAAQ,QACP,YACH,IAAIC,GAAMd,EAAI,GAAG,GAAGe,cACpBX,MAAsBU,EAAIE,GAAKF,EAAI7I,GACnC+H,EAAItI,UAMR,MAHI0I,KAAmBD,EAAMjN,EAAI+E,EAAEgJ,MAAOd,EAAMe,EAAIjJ,EAAEkJ,QAAYhB,EAAMjN,EAAI+E,EAAEmJ,QAC9EjB,EAAMe,EAAIjJ,EAAEoJ,SACZlB,EAAQA,EAAMmB,gBAAgBxB,EAAUiB,eAAeQ,YAC9CpB,EAAMjN,EAAGiN,EAAMe,GAE1B,GAAIM,GAAO1B,EAAU2B,uBACrB,QAASxJ,EAAEmJ,QAAUI,EAAKjO,KAAOuM,EAAU4B,WAAYzJ,EAAEoJ,QAAUG,EAAKd,IAAMZ,EAAU6B,WA2D1F,QAASC,KACP,MAAO/J,IAAGb,MAAM+I,eAAe,GAAG8B,WAWpC,QAASC,GAAO5O,GACd,MAAOA,GAAI,EAAI,EAAQ,EAAJA,EAAQ,GAAK,EAElC,QAAS6O,GAAWhP,EAAGC,EAAGgI,GACxB,OAAQhI,EAAE,GAAKD,EAAE,KAAOiI,EAAE,GAAKjI,EAAE,KAAOC,EAAE,GAAKD,EAAE,KAAOiI,EAAE,GAAKjI,EAAE,IAEnE,QAASiP,IAAQ9O,GACf,MAAOA,GAAI,EAAI,EAAQ,GAAJA,EAAS+O,GAAIC,KAAKC,KAAKjP,GAE5C,QAASkP,IAAQlP,GACf,MAAOA,GAAI,EAAImP,GAAY,GAAJnP,GAAUmP,GAAQH,KAAKI,KAAKpP,GAErD,QAASqP,IAAQrP,GACf,QAASA,EAAIgP,KAAKM,IAAItP,IAAM,EAAIA,GAAK,EAEvC,QAASuP,IAAQvP,GACf,QAASA,EAAIgP,KAAKM,IAAItP,IAAM,EAAIA,GAAK,EAEvC,QAASwP,IAAQxP,GACf,QAASA,EAAIgP,KAAKM,IAAI,EAAItP,IAAM,IAAMA,EAAI,GAE5C,QAASyP,IAAYzP,GACnB,OAAQA,EAAIgP,KAAKU,IAAI1P,EAAI,IAAMA,EAmSjC,QAAS2P,OAKT,QAASC,IAAOC,EAAG/K,EAAGf,GACpB,MAAOrC,gBAAgBkO,KAAelO,KAAKmO,GAAKA,EAAGnO,KAAKoD,GAAKA,OAAGpD,KAAKqC,GAAKA,IAAKvD,UAAUC,OAAS,EAAIoP,YAAaD,IAAS,GAAIA,IAAOC,EAAEA,EAAGA,EAAE/K,EAAG+K,EAAE9L,GAAK+L,GAAa,GAAKD,EAAGE,GAAYH,IAAU,GAAIA,IAAOC,EAAG/K,EAAGf,GActN,QAASiM,IAAWH,EAAG/K,EAAGf,GAOxB,QAASkM,GAAEJ,GAET,MADIA,GAAI,IAAKA,GAAK,IAAkB,EAAJA,IAAOA,GAAK,KACpC,GAAJA,EAAeK,GAAMC,EAAKD,GAAML,EAAI,GAChC,IAAJA,EAAgBM,EACZ,IAAJN,EAAgBK,GAAMC,EAAKD,IAAO,IAAML,GAAK,GAC1CK,EAET,QAASE,GAAGP,GACV,MAAOb,MAAKqB,MAAa,IAAPJ,EAAEJ,IAdtB,GAAIK,GAAIC,CAgBR,OAfAN,GAAI3P,MAAM2P,GAAK,GAAKA,GAAK,KAAO,EAAIA,EAAI,IAAMA,EAC9C/K,EAAI5E,MAAM4E,GAAK,EAAQ,EAAJA,EAAQ,EAAIA,EAAI,EAAI,EAAIA,EAC3Cf,EAAQ,EAAJA,EAAQ,EAAIA,EAAI,EAAI,EAAIA,EAC5BoM,EAAU,IAALpM,EAAUA,GAAK,EAAIe,GAAKf,EAAIe,EAAIf,EAAIe,EACzCoL,EAAK,EAAInM,EAAIoM,EAWN,GAAIG,IAAOF,EAAGP,EAAI,KAAMO,EAAGP,GAAIO,EAAGP,EAAI,MAG/C,QAASU,IAAOV,EAAG/H,EAAG/D,GACpB,MAAOrC,gBAAgB6O,KAAe7O,KAAKmO,GAAKA,EAAGnO,KAAKoG,GAAKA,OAAGpG,KAAKqC,GAAKA,IAAKvD,UAAUC,OAAS,EAAIoP,YAAaU,IAAS,GAAIA,IAAOV,EAAEA,EAAGA,EAAE/H,EAAG+H,EAAE9L,GAAK8L,YAAaW,IAASC,GAAWZ,EAAE9L,EAAG8L,EAAEhQ,EAAGgQ,EAAE/P,GAAK2Q,IAAYZ,EAAIa,IAAYb,EAAIlL,GAAGgM,IAAId,IAAIe,EAAGf,EAAEgB,EAAGhB,EAAE/P,IAAIiE,EAAG8L,EAAEhQ,EAAGgQ,EAAE/P,GAAK,GAAIyQ,IAAOV,EAAG/H,EAAG/D,GAYrS,QAAS+M,IAAWjB,EAAG/H,EAAG/D,GAGxB,MAFI7D,OAAM2P,KAAIA,EAAI,GACd3P,MAAM4H,KAAIA,EAAI,GACX,GAAI0I,IAAOzM,EAAGiL,KAAK+B,IAAIlB,GAAKmB,IAAclJ,EAAGkH,KAAKU,IAAIG,GAAK/H,GAGpE,QAAS0I,IAAOzM,EAAGlE,EAAGC,GACpB,MAAO4B,gBAAgB8O,KAAe9O,KAAKqC,GAAKA,EAAGrC,KAAK7B,GAAKA,OAAG6B,KAAK5B,GAAKA,IAAKU,UAAUC,OAAS,EAAIsD,YAAayM,IAAS,GAAIA,IAAOzM,EAAEA,EAAGA,EAAElE,EAAGkE,EAAEjE,GAAKiE,YAAawM,IAASO,GAAW/M,EAAE8L,EAAG9L,EAAE+D,EAAG/D,EAAEA,GAAK2M,IAAY3M,EAAIuM,GAAOvM,IAAI6M,EAAG7M,EAAE8M,EAAG9M,EAAEjE,GAAK,GAAI0Q,IAAOzM,EAAGlE,EAAGC,GAcvQ,QAASmR,IAAWlN,EAAGlE,EAAGC,GACxB,GAAIkO,IAAKjK,EAAI,IAAM,IAAK/D,EAAIgO,EAAInO,EAAI,IAAKmE,EAAIgK,EAAIlO,EAAI,GAIrD,OAHAE,GAAIkR,GAAWlR,GAAKmR,GACpBnD,EAAIkD,GAAWlD,GAAKoD,GACpBpN,EAAIkN,GAAWlN,GAAKqN,GACb,GAAIf,IAAOgB,GAAW,UAAYtR,EAAI,UAAYgO,EAAI,SAAWhK,GAAIsN,IAAY,QAAUtR,EAAI,UAAYgO,EAAI,QAAUhK,GAAIsN,GAAW,SAAWtR,EAAI,SAAWgO,EAAI,UAAYhK,IAE3L,QAASyM,IAAW1M,EAAGlE,EAAGC,GACxB,MAAOiE,GAAI,EAAI,GAAIwM,IAAOvB,KAAKuC,MAAMzR,EAAGD,GAAK2R,GAAYxC,KAAKyC,KAAK5R,EAAIA,EAAIC,EAAIA,GAAIiE,GAAK,GAAIwM,YAAiBxM,GAE/G,QAASmN,IAAWlR,GAClB,MAAOA,GAAI,WAAaA,EAAIA,EAAIA,GAAKA,EAAI,EAAI,IAAM,SAErD,QAAS0R,IAAW1R,GAClB,MAAOA,GAAI,QAAUgP,KAAK2C,IAAI3R,EAAG,EAAI,GAAK,SAAWA,EAAI,EAAI,GAE/D,QAASsR,IAAWV,GAClB,MAAO5B,MAAKqB,MAAM,KAAY,QAALO,EAAc,MAAQA,EAAI,MAAQ5B,KAAK2C,IAAIf,EAAG,EAAI,KAAO,OAGpF,QAASN,IAAOM,EAAGC,EAAG/Q,GACpB,MAAO4B,gBAAgB4O,KAAe5O,KAAKkP,IAAMA,EAAGlP,KAAKmP,IAAMA,OAAGnP,KAAK5B,IAAMA,IAAKU,UAAUC,OAAS,EAAImQ,YAAaN,IAAS,GAAIA,IAAOM,EAAEA,EAAGA,EAAEC,EAAGD,EAAE9Q,GAAKgQ,GAAa,GAAKc,EAAGN,GAAQN,IAAc,GAAIM,IAAOM,EAAGC,EAAG/Q,GAEzN,QAAS8R,IAAarQ,GACpB,MAAO,IAAI+O,IAAO/O,GAAS,GAAIA,GAAS,EAAI,IAAa,IAARA,GAEnD,QAASsQ,IAAatQ,GACpB,MAAOqQ,IAAarQ,GAAS,GAsB/B,QAASuQ,IAAW7B,GAClB,MAAW,IAAJA,EAAS,IAAMjB,KAAK+C,IAAI,EAAG9B,GAAG+B,SAAS,IAAMhD,KAAKiD,IAAI,IAAKhC,GAAG+B,SAAS,IAEhF,QAASlC,IAAaoC,EAAQvB,EAAKwB,GACjC,GAAyBjC,GAAIC,EAAIiC,EAA7BxB,EAAI,EAAGC,EAAI,EAAG/Q,EAAI,CAEtB,IADAoQ,EAAK,oBAAoBmC,KAAKH,GAG5B,OADA/B,EAAKD,EAAG,GAAG3I,MAAM,KACT2I,EAAG,IACV,IAAK,MAEF,MAAOiC,GAAIG,WAAWnC,EAAG,IAAKmC,WAAWnC,EAAG,IAAM,IAAKmC,WAAWnC,EAAG,IAAM,IAG9E,KAAK,MAEF,MAAOQ,GAAI4B,GAAmBpC,EAAG,IAAKoC,GAAmBpC,EAAG,IAAKoC,GAAmBpC,EAAG,KAI7F,OAAIiC,EAAQI,GAAanO,IAAI6N,EAAOO,gBAC3B9B,EAAIyB,EAAMxB,EAAGwB,EAAMvB,EAAGuB,EAAMtS,IAEvB,MAAVoS,GAAuC,MAArBA,EAAO9O,OAAO,IAAelD,MAAMkS,EAAQM,SAASR,EAAOjQ,MAAM,GAAI,OACnE,IAAlBiQ,EAAOzR,QACTmQ,GAAa,KAARwB,IAAiB,EACtBxB,EAAIA,GAAK,EAAIA,EACbC,EAAY,IAARuB,EACJvB,EAAIA,GAAK,EAAIA,EACb/Q,EAAY,GAARsS,EACJtS,EAAIA,GAAK,EAAIA,GACc,IAAlBoS,EAAOzR,SAChBmQ,GAAa,SAARwB,IAAqB,GAC1BvB,GAAa,MAARuB,IAAkB,EACvBtS,EAAY,IAARsS,IAGDzB,EAAIC,EAAGC,EAAG/Q,IAEnB,QAASiQ,IAAWa,EAAGC,EAAG/Q,GACxB,GAA0F+P,GAAG/K,EAAzFmN,EAAMjD,KAAKiD,IAAIrB,GAAK,IAAKC,GAAK,IAAK/Q,GAAK,KAAMiS,EAAM/C,KAAK+C,IAAInB,EAAGC,EAAG/Q,GAAIe,EAAIkR,EAAME,EAAWlO,GAAKgO,EAAME,GAAO,CASlH,OARIpR,IACFiE,EAAQ,GAAJf,EAASlD,GAAKkR,EAAME,GAAOpR,GAAK,EAAIkR,EAAME,GAChCpC,EAAVe,GAAKmB,GAAUlB,EAAI/Q,GAAKe,GAASf,EAAJ+Q,EAAQ,EAAI,GAAaA,GAAKkB,GAAUjS,EAAI8Q,GAAK/P,EAAI,GAAa+P,EAAIC,GAAKhQ,EAAI,EAChHgP,GAAK,KAELA,MACA/K,EAAIf,EAAI,GAAS,EAAJA,EAAQ,EAAI8L,GAEpB,GAAID,IAAOC,EAAG/K,EAAGf,GAE1B,QAAS2M,IAAWE,EAAGC,EAAG/Q,GACxB8Q,EAAI+B,GAAW/B,GACfC,EAAI8B,GAAW9B,GACf/Q,EAAI6S,GAAW7S,EACf,IAAIE,GAAI0R,IAAY,SAAWd,EAAI,SAAWC,EAAI,SAAW/Q,GAAKqR,IAAWnD,EAAI0D,IAAY,SAAWd,EAAI,SAAWC,EAAI,QAAU/Q,GAAKsR,IAAWpN,EAAI0N,IAAY,SAAWd,EAAI,QAAUC,EAAI,SAAW/Q,GAAKuR,GAClN,OAAOb,IAAO,IAAMxC,EAAI,GAAI,KAAOhO,EAAIgO,GAAI,KAAOA,EAAIhK,IAExD,QAAS2O,IAAW/B,GAClB,OAAQA,GAAK,MAAQ,OAASA,EAAI,MAAQ5B,KAAK2C,KAAKf,EAAI,MAAQ,MAAO,KAEzE,QAAS2B,IAAmBzK,GAC1B,GAAIgG,GAAIwE,WAAWxK,EACnB,OAAkC,MAA3BA,EAAE1E,OAAO0E,EAAErH,OAAS,GAAauO,KAAKqB,MAAU,KAAJvC,GAAYA,EA2JjE,QAAS8E,IAAW3C,GAClB,MAAoB,kBAANA,GAAmBA,EAAI,WACnC,MAAOA,IAKX,QAAS4C,IAAWC,GAClB,MAAO,UAASC,EAAKC,EAAU9I,GAG7B,MAFyB,KAArB1J,UAAUC,QAAoC,kBAAbuS,KAAyB9I,EAAW8I,EACzEA,EAAW,MACJC,GAAOF,EAAKC,EAAUF,EAAU5I,IAG3C,QAAS+I,IAAOF,EAAKC,EAAUF,EAAU5I,GAMvC,QAASgJ,KACP,GAA6BC,GAAzBC,EAASC,EAAQD,MACrB,KAAKA,GAAUE,GAAkBD,IAAYD,GAAU,KAAgB,IAATA,GAA2B,MAAXA,EAAgB,CAC5F,IACED,EAASL,EAASxH,KAAKiI,EAAKF,GAC5B,MAAOtO,GAEP,WADAlB,GAAS2P,MAAMlI,KAAKiI,EAAKxO,GAG3BlB,EAAS4P,KAAKnI,KAAKiI,EAAKJ,OAExBtP,GAAS2P,MAAMlI,KAAKiI,EAAKF,GAhB7B,GAAIE,MAAU1P,EAAWc,GAAGd,SAAS,aAAc,WAAY,OAAQ,SAAU6P,KAAcL,EAAU,GAAIM,gBAAkBC,EAAe,IAwE9I,QAvEIlS,KAAKmS,gBAAoB,mBAAqBR,KAAY,oBAAoBlL,KAAK4K,KAAMM,EAAU,GAAIQ,iBAC3G,UAAYR,GAAUA,EAAQS,OAAST,EAAQU,QAAUb,EAAUG,EAAQW,mBAAqB,WAC9FX,EAAQY,WAAa,GAAKf,KAgB5BG,EAAQa,WAAa,SAASpQ,GAC5B,GAAIgI,GAAInH,GAAGb,KACXa,IAAGb,MAAQA,CACX,KACED,EAASsQ,SAAS7I,KAAKiI,EAAKF,GAC5B,QACA1O,GAAGb,MAAQgI,IAGfyH,EAAIa,OAAS,SAASjR,EAAM5B,GAE1B,MADA4B,IAAQA,EAAO,IAAIsP,cACfjS,UAAUC,OAAS,EAAUiT,EAAQvQ,IAC5B,MAAT5B,QAAsBmS,GAAQvQ,GAAYuQ,EAAQvQ,GAAQ5B,EAAQ,GAC/DgS,IAETA,EAAIP,SAAW,SAASzR,GACtB,MAAKf,WAAUC,QACfuS,EAAoB,MAATzR,EAAgB,KAAOA,EAAQ,GACnCgS,GAFuBP,GAIhCO,EAAIK,aAAe,SAASrS,GAC1B,MAAKf,WAAUC,QACfmT,EAAerS,EACRgS,GAFuBK,GAIhCL,EAAIT,SAAW,SAASvR,GAEtB,MADAuR,GAAWvR,EACJgS,IAEP,MAAO,QAASc,QAAQ,SAAStR,GACjCwQ,EAAIxQ,GAAU,WACZ,MAAOwQ,GAAIe,KAAKtR,MAAMuQ,GAAOxQ,GAASwB,OAAO8G,GAAS7K,gBAG1D+S,EAAIe,KAAO,SAASvR,EAAQ4G,EAAMO,GAIhC,GAHyB,IAArB1J,UAAUC,QAAgC,kBAATkJ,KAAqBO,EAAWP,EAAMA,EAAO,MAClF0J,EAAQkB,KAAKxR,EAAQgQ,GAAK,GACV,MAAZC,GAAsB,UAAYU,KAAUA,EAAgB,OAAIV,EAAW,QAC3EK,EAAQmB,iBAAkB,IAAK,GAAIrR,KAAQuQ,GAASL,EAAQmB,iBAAiBrR,EAAMuQ,EAAQvQ,GAQ/F,OAPgB,OAAZ6P,GAAoBK,EAAQoB,kBAAkBpB,EAAQoB,iBAAiBzB,GACvD,MAAhBY,IAAsBP,EAAQO,aAAeA,GACjC,MAAZ1J,GAAkBqJ,EAAIrP,GAAG,QAASgG,GAAUhG,GAAG,OAAQ,SAASmP,GAClEnJ,EAAS,KAAMmJ,KAEjBxP,EAAS6Q,WAAWpJ,KAAKiI,EAAKF,GAC9BA,EAAQiB,KAAa,MAAR3K,EAAe,KAAOA,GAC5B4J,GAETA,EAAIoB,MAAQ,WAEV,MADAtB,GAAQsB,QACDpB,GAET5O,GAAGiQ,OAAOrB,EAAK1P,EAAU,MACN,MAAZqG,EAAmBqJ,EAAMA,EAAIlP,IAAIwQ,GAAmB3K,IAE7D,QAAS2K,IAAmB3K,GAC1B,MAA2B,KAApBA,EAASzJ,OAAe,SAAS+S,EAAOH,GAC7CnJ,EAAkB,MAATsJ,EAAgBH,EAAU,OACjCnJ,EAEN,QAASoJ,IAAkBD,GACzB,GAAI9N,GAAO8N,EAAQO,YACnB,OAAOrO,IAAiB,SAATA,EAAkB8N,EAAQP,SAAWO,EAAQyB,aA+H9D,QAASC,MACP,GAAIC,GAAMC,KAAiBC,EAAQC,KAAmBH,CAClDE,GAAQ,IACNE,SAASF,KACXG,aAAaC,IACbA,GAAmB5I,WAAWqI,GAAeG,IAE/CK,GAAoB,IAEpBA,GAAoB,EACpBC,GAAeT,KAOnB,QAASE,MACP,GAAID,GAAMS,KAAKT,KAEf,KADAU,GAAkBC,GACXD,IACDV,GAAOU,GAAgBE,IAAGF,GAAgB5H,EAAI4H,GAAgB5N,EAAEkN,EAAMU,GAAgBE,IAC1FF,GAAkBA,GAAgBnS,CAEpC,OAAOyR,GAET,QAASG,MAEP,IADA,GAAIU,GAAIC,EAAKH,GAAoBI,MAC1BD,GACDA,EAAGhI,EACLgI,EAAKD,EAAKA,EAAGtS,EAAIuS,EAAGvS,EAAIoS,GAAqBG,EAAGvS,GAE5CuS,EAAGF,EAAIG,IAAMA,EAAOD,EAAGF,GAC3BE,GAAMD,EAAKC,GAAIvS,EAInB,OADAyS,IAAqBH,EACdE,EAET,QAASE,IAAoBjW,EAAGkW,GAC9B,MAAOA,IAAKlW,EAAIgP,KAAKmH,KAAKnH,KAAKoH,IAAIpW,GAAKgP,KAAKqH,MAAQ,GAgBvD,QAASC,IAAgBzV,EAAGyC,GAC1B,GAAIvC,GAAIiO,KAAK2C,IAAI,GAAiB,EAAb4E,GAAI,EAAIjT,GAC7B,QACEkT,MAAOlT,EAAI,EAAI,SAASzC,GACtB,MAAOA,GAAIE,GACT,SAASF,GACX,MAAOA,GAAIE,GAEb0V,OAAQ5V,GAGZ,QAAS6V,IAAuBC,GAC9B,GAAIC,GAAiBD,EAAOE,QAASC,EAAmBH,EAAOI,UAAWC,EAAkBL,EAAOM,SAAUC,EAAkBP,EAAOQ,SAAUC,EAAcJ,GAAmBF,EAAmB,SAASvV,EAAO8V,GAElN,IADA,GAAI/T,GAAI/B,EAAMd,OAAQmV,KAAQzL,EAAI,EAAG0G,EAAImG,EAAgB,GAAIvW,EAAS,EAC/D6C,EAAI,GAAKuN,EAAI,IACdpQ,EAASoQ,EAAI,EAAIwG,IAAOxG,EAAI7B,KAAK+C,IAAI,EAAGsF,EAAQ5W,IACpDmV,EAAEtT,KAAKf,EAAM+V,UAAUhU,GAAKuN,EAAGvN,EAAIuN,OAC9BpQ,GAAUoQ,EAAI,GAAKwG,KACxBxG,EAAImG,EAAgB7M,GAAKA,EAAI,GAAK6M,EAAgBvW,OAEpD,OAAOmV,GAAE2B,UAAUC,KAAKV,IACtBnU,CACJ,OAAO,UAAS8U,GACd,GAAIhM,GAAQiM,GAAarF,KAAKoF,GAAYE,EAAOlM,EAAM,IAAM,IAAKmM,EAAQnM,EAAM,IAAM,IAAKoM,EAAOpM,EAAM,IAAM,IAAKgL,EAAShL,EAAM,IAAM,GAAIqM,EAAQrM,EAAM,GAAI4L,GAAS5L,EAAM,GAAIsM,EAAQtM,EAAM,GAAIuM,EAAYvM,EAAM,GAAIlG,EAAOkG,EAAM,GAAI+K,EAAQ,EAAGyB,EAAS,GAAIC,EAAS,GAAIC,GAAU,EAAOC,GAAW,CAM3S,QALIJ,IAAWA,GAAaA,EAAUV,UAAU,KAC5CQ,GAAkB,MAATH,GAA0B,MAAVC,KAC3BE,EAAQH,EAAO,IACfC,EAAQ,KAEFrS,GACP,IAAK,IACJwS,GAAQ,EACRxS,EAAO,GACP,MAED,KAAK,IACJiR,EAAQ,IACR0B,EAAS,IACT3S,EAAO,GACP,MAED,KAAK,IACJiR,EAAQ,IACR0B,EAAS,IACT3S,EAAO,GACP,MAED,KAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACW,MAAXkR,IAAgBwB,EAAS,IAAM1S,EAAKkN,cAEzC,KAAK,IACJ2F,GAAW,CAEZ,KAAK,IACJD,GAAU,EACVH,EAAY,CACZ,MAED,KAAK,IACJxB,EAAQ,GACRjR,EAAO,IAGM,MAAXkR,IAAgBwB,EAASf,EAAgB,GAAIgB,EAAShB,EAAgB,IAC9D,KAAR3R,GAAgByS,IAAWzS,EAAO,KACrB,MAAbyS,IACU,KAARzS,EAAayS,EAAYhJ,KAAK+C,IAAI,EAAG/C,KAAKiD,IAAI,GAAI+F,KAA8B,KAARzS,GAAuB,KAARA,KAAayS,EAAYhJ,KAAK+C,IAAI,EAAG/C,KAAKiD,IAAI,GAAI+F,MAE/IzS,EAAO8S,GAAgBhU,IAAIkB,IAAS+S,EACpC,IAAIC,GAAST,GAASC,CACtB,OAAO,UAASxW,GACd,GAAIiX,GAAaN,CACjB,IAAIC,GAAW5W,EAAQ,EAAG,MAAO,EACjC,IAAIkX,GAAmB,EAARlX,GAAuB,IAAVA,GAA2B,EAAZ,EAAIA,GAAaA,GAASA,EAAO,KAAgB,MAATsW,EAAe,GAAKA,CACvG,IAAY,EAARrB,EAAW,CACb,GAAIkC,GAAO/T,GAAGgU,aAAapX,EAAOyW,EAClCzW,GAAQmX,EAAKlC,MAAMjV,GACnBiX,EAAaE,EAAKjC,OAASyB,MAE3B3W,IAASiV,CAEXjV,GAAQgE,EAAKhE,EAAOyW,EACpB,IAAgCY,GAAQC,EAApCvV,EAAI/B,EAAMuX,YAAY,IAC1B,IAAQ,EAAJxV,EAAO,CACT,GAAI6G,GAAIiO,EAAW7W,EAAMuX,YAAY,KAAO,EACpC,GAAJ3O,GAAOyO,EAASrX,EAAOsX,EAAQ,KAASD,EAASrX,EAAM+V,UAAU,EAAGnN,GAAI0O,EAAQtX,EAAM+V,UAAUnN,QAEpGyO,GAASrX,EAAM+V,UAAU,EAAGhU,GAC5BuV,EAAQjC,EAAiBrV,EAAM+V,UAAUhU,EAAI,IAE1CwU,GAASC,IAAOa,EAASxB,EAAYwB,OAC1C,IAAInY,GAASwX,EAAOxX,OAASmY,EAAOnY,OAASoY,EAAMpY,QAAU8X,EAAS,EAAIE,EAAShY,QAASiN,EAAmB2J,EAAT5W,EAAiB,GAAIsY,OAAMtY,EAAS4W,EAAQ5W,EAAS,GAAG+W,KAAKG,GAAQ,EAI3K,OAHIY,KAAQK,EAASxB,EAAY1J,EAAUkL,EAAQlL,EAAQjN,OAAS4W,EAAQwB,EAAMpY,aAClFgY,GAAYR,EACZ1W,EAAQqX,EAASC,GACC,MAAVjB,EAAgBa,EAAWlX,EAAQmM,EAAoB,MAAVkK,EAAgBlK,EAAU+K,EAAWlX,EAAkB,MAAVqW,EAAgBlK,EAAQ4J,UAAU,EAAG7W,IAAW,GAAKgY,EAAWlX,EAAQmM,EAAQ4J,UAAU7W,GAAUgY,GAAYF,EAAShX,EAAQmM,EAAUnM,IAAUiX,IAkC7P,QAASF,IAAsBtY,GAC7B,MAAOA,GAAI,GAGb,QAASgZ,MACPtX,KAAKC,EAAI,GAAI8T,MAAKjV,UAAUC,OAAS,EAAIgV,KAAKwD,IAAIjW,MAAMtB,KAAMlB,WAAaA,UAAU,IAiEvF,QAAS0Y,IAAiB3S,EAAO4S,EAAMC,GACrC,QAAS/I,GAAMgJ,GACb,GAAIC,GAAK/S,EAAM8S,GAAOE,EAAKC,EAAOF,EAAI,EACtC,OAAmBC,GAAKF,EAAjBA,EAAOC,EAAiBA,EAAKC,EAEtC,QAASpD,GAAKkD,GAEZ,MADAF,GAAKE,EAAO9S,EAAM,GAAIkT,IAAQJ,EAAO,IAAK,GACnCA,EAET,QAASG,GAAOH,EAAMtY,GAEpB,MADAoY,GAAKE,EAAO,GAAII,KAASJ,GAAOtY,GACzBsY,EAET,QAASK,GAAM7D,EAAIC,EAAI6D,GACrB,GAAI5D,GAAOI,EAAKN,GAAK+D,IACrB,IAAID,EAAK,EACP,KAAc7D,EAAPC,GACCqD,EAAOrD,GAAQ4D,GAAKC,EAAMtX,KAAK,GAAImT,OAAMM,IAC/CoD,EAAKpD,EAAM,OAGb,MAAcD,EAAPC,GAAW6D,EAAMtX,KAAK,GAAImT,OAAMM,IAAQoD,EAAKpD,EAAM,EAE5D,OAAO6D,GAET,QAASC,GAAUhE,EAAIC,EAAI6D,GACzB,IACEF,GAAUT,EACV,IAAIc,GAAM,GAAId,GAEd,OADAc,GAAInY,EAAIkU,EACD6D,EAAMI,EAAKhE,EAAI6D,GACtB,QACAF,GAAUhE,MAGdlP,EAAMwT,MAAQxT,EACdA,EAAM8J,MAAQA,EACd9J,EAAM4P,KAAOA,EACb5P,EAAMiT,OAASA,EACfjT,EAAMmT,MAAQA,CACd,IAAII,GAAMvT,EAAMuT,IAAME,GAAqBzT,EAM3C,OALAuT,GAAIC,MAAQD,EACZA,EAAIzJ,MAAQ2J,GAAqB3J,GACjCyJ,EAAI3D,KAAO6D,GAAqB7D,GAChC2D,EAAIN,OAASQ,GAAqBR,GAClCM,EAAIJ,MAAQG,EACLtT,EAET,QAASyT,IAAqBjX,GAC5B,MAAO,UAASsW,EAAMtY,GACpB,IACE0Y,GAAUT,EACV,IAAIc,GAAM,GAAId,GAEd,OADAc,GAAInY,EAAI0X,EACDtW,EAAO+W,EAAK/Y,GAAGY,EACtB,QACA8X,GAAUhE,OAoDhB,QAASwE,IAAqBtD,GAE5B,QAASuD,GAAeC,GAEtB,QAASjI,GAAOmH,GAEd,IADA,GAAgCvR,GAAGoO,EAAGpI,EAAlCsM,KAAa9W,EAAI,GAAI6G,EAAI,IACpB7G,EAAIC,GACoB,KAA3B4W,EAASE,WAAW/W,KACtB8W,EAAO9X,KAAK6X,EAASlY,MAAMkI,EAAG7G,IAC4B,OAArD4S,EAAIoE,GAAmBxS,EAAIqS,EAAS/W,SAASE,OAAcwE,EAAIqS,EAAS/W,SAASE,KAClFwK,EAAIyM,EAAgBzS,MAAIA,EAAIgG,EAAEuL,EAAW,MAALnD,EAAkB,MAANpO,EAAY,IAAM,IAAMoO,IAC5EkE,EAAO9X,KAAKwF,GACZqC,EAAI7G,EAAI,EAIZ,OADA8W,GAAO9X,KAAK6X,EAASlY,MAAMkI,EAAG7G,IACvB8W,EAAO5C,KAAK,IAbrB,GAAIjU,GAAI4W,EAAS1Z,MAuCjB,OAxBAyR,GAAOsI,MAAQ,SAASJ,GACtB,GAAIvZ,IACFmN,EAAG,KACH5D,EAAG,EACHvJ,EAAG,EACH4Z,EAAG,EACHC,EAAG,EACHC,EAAG,EACHC,EAAG,EACHC,EAAG,MACFvX,EAAIwX,EAAcja,EAAGsZ,EAAUC,EAAQ,EAC1C,IAAI9W,GAAK8W,EAAO3Z,OAAQ,MAAO,KAC3B,MAAOI,KAAGA,EAAE4Z,EAAI5Z,EAAE4Z,EAAI,GAAW,GAAN5Z,EAAEqV,EACjC,IAAI6E,GAAgB,MAAPla,EAAEga,GAAapB,KAAYT,GAAaK,EAAO,IAAK0B,EAAS/B,GAAcS,GAMxF,OALI,KAAO5Y,GAAGwY,EAAK2B,YAAYna,EAAEmN,EAAG,EAAGnN,EAAEsJ,GAAa,KAAOtJ,KAAM,KAAOA,IAAK,KAAOA,KACpFwY,EAAK2B,YAAYna,EAAEmN,EAAG,EAAG,GACzBqL,EAAK2B,YAAYna,EAAEmN,EAAG,EAAG,KAAOnN,IAAKA,EAAEwL,EAAI,GAAK,EAAU,EAANxL,EAAEoa,GAAS5B,EAAK6B,SAAW,GAAK,EAAIra,EAAEwL,EAAU,EAANxL,EAAEsa,GAAS9B,EAAK6B,SAAW,GAAK,IACzH7B,EAAK2B,YAAYna,EAAEmN,EAAGnN,EAAEuJ,EAAGvJ,EAAEA,GACpCwY,EAAK+B,SAASva,EAAE4Z,GAAK5Z,EAAEga,EAAI,IAAM,GAAIha,EAAE6Z,EAAI7Z,EAAEga,EAAI,IAAKha,EAAE8Z,EAAG9Z,EAAE+Z,GACtDG,EAAS1B,EAAK1X,EAAI0X,GAE3BnH,EAAOF,SAAW,WAChB,MAAOmI,IAEFjI,EAET,QAAS4I,GAAczB,EAAMc,EAAUC,EAAQjQ,GAE7C,IADA,GAAIrC,GAAGoO,EAAGN,EAAGtS,EAAI,EAAGC,EAAI4W,EAAS1Z,OAAQ2J,EAAIgQ,EAAO3Z,OACzC8C,EAAJD,GAAO,CACZ,GAAI6G,GAAKC,EAAG,MAAO,EAEnB,IADAtC,EAAIqS,EAASE,WAAW/W,KACd,KAANwE,GAGF,GAFA8N,EAAIuE,EAAS/W,OAAOE,KACpB4S,EAAImF,EAAgBzF,IAAK0E,IAAqBH,EAAS/W,OAAOE,KAAOsS,IAChEM,IAAM/L,EAAI+L,EAAEmD,EAAMe,EAAQjQ,IAAM,EAAG,MAAO,OAC1C,IAAIrC,GAAKsS,EAAOC,WAAWlQ,KAChC,MAAO,GAGX,MAAOA,GA2HT,QAASmR,GAA2BjC,EAAMe,EAAQ9W,GAChDiY,EAAoBrT,UAAY,CAChC,IAAI3E,GAAIgY,EAAoBlJ,KAAK+H,EAAOnY,MAAMqB,GAC9C,OAAOC,IAAK8V,EAAKhN,EAAImP,EAAwBnX,IAAId,EAAE,GAAGkP,eAAgBnP,EAAIC,EAAE,GAAG9C,QAAU,GAE3F,QAASgb,GAAqBpC,EAAMe,EAAQ9W,GAC1CoY,EAAcxT,UAAY,CAC1B,IAAI3E,GAAImY,EAAcrJ,KAAK+H,EAAOnY,MAAMqB,GACxC,OAAOC,IAAK8V,EAAKhN,EAAIsP,EAAkBtX,IAAId,EAAE,GAAGkP,eAAgBnP,EAAIC,EAAE,GAAG9C,QAAU,GAErF,QAASmb,GAAyBvC,EAAMe,EAAQ9W,GAC9CuY,EAAsB3T,UAAY,CAClC,IAAI3E,GAAIsY,EAAsBxJ,KAAK+H,EAAOnY,MAAMqB,GAChD,OAAOC,IAAK8V,EAAKjP,EAAI0R,EAA0BzX,IAAId,EAAE,GAAGkP,eAAgBnP,EAAIC,EAAE,GAAG9C,QAAU,GAE7F,QAASsb,GAAmB1C,EAAMe,EAAQ9W,GACxC0Y,EAAgB9T,UAAY,CAC5B,IAAI3E,GAAIyY,EAAgB3J,KAAK+H,EAAOnY,MAAMqB,GAC1C,OAAOC,IAAK8V,EAAKjP,EAAI6R,EAAoB5X,IAAId,EAAE,GAAGkP,eAAgBnP,EAAIC,EAAE,GAAG9C,QAAU,GAEvF,QAASyb,GAAwB7C,EAAMe,EAAQ9W,GAC7C,MAAOwX,GAAczB,EAAMkB,EAAgBzS,EAAEkK,WAAYoI,EAAQ9W,GAEnE,QAAS6Y,GAAwB9C,EAAMe,EAAQ9W,GAC7C,MAAOwX,GAAczB,EAAMkB,EAAgBva,EAAEgS,WAAYoI,EAAQ9W,GAEnE,QAAS8Y,GAAwB/C,EAAMe,EAAQ9W,GAC7C,MAAOwX,GAAczB,EAAMkB,EAAgB8B,EAAErK,WAAYoI,EAAQ9W,GAEnE,QAASgZ,GAAkBjD,EAAMe,EAAQ9W,GACvC,GAAIC,GAAIgZ,EAAqBlY,IAAI+V,EAAOnY,MAAMqB,EAAGA,GAAK,GAAGmP,cACzD,OAAY,OAALlP,EAAY,IAAM8V,EAAKnD,EAAI3S,EAAGD,GAlNvC,GAAIkZ,GAAkB7F,EAAO8F,SAAUC,EAAc/F,EAAO0C,KAAMsD,EAAchG,EAAOZ,KAAM6G,EAAiBjG,EAAOkG,QAASC,EAAcnG,EAAOoG,KAAMC,EAAmBrG,EAAOsG,UAAWC,EAAgBvG,EAAOwG,OAAQC,EAAqBzG,EAAO0G,WA0DzPnD,GAAeJ,IAAM,SAASK,GAE5B,QAASjI,GAAOmH,GACd,IACEI,GAAUT,EACV,IAAIc,GAAM,GAAIL,GAEd,OADAK,GAAInY,EAAI0X,EACD9S,EAAMuT,GACb,QACAL,GAAUhE,MARd,GAAIlP,GAAQ2T,EAAeC,EAqB3B,OAVAjI,GAAOsI,MAAQ,SAASJ,GACtB,IACEX,GAAUT,EACV,IAAIK,GAAO9S,EAAMiU,MAAMJ,EACvB,OAAOf,IAAQA,EAAK1X,EACpB,QACA8X,GAAUhE,OAGdvD,EAAOF,SAAWzL,EAAMyL,SACjBE,GAETgI,EAAeoD,MAAQpD,EAAeJ,IAAIwD,MAAQC,EAClD,IAAIhB,GAAuB5X,GAAGgD,MAAO+T,EAAgB8B,GAAiBV,GAAcnB,EAAoB8B,GAAqBX,GAAcvB,EAAsBiC,GAAiBR,GAAmBxB,EAA0BiC,GAAqBT,GAAmBhB,EAAkBwB,GAAiBN,GAAgBjB,EAAsBwB,GAAqBP,GAAgBrB,EAAwB2B,GAAiBJ,GAAqBtB,EAA4B2B,GAAqBL,EACpeR,GAAevI,QAAQ,SAAS6B,EAAG5S,GACjCiZ,EAAqB9X,IAAIyR,EAAEzD,cAAenP,IAE5C,IAAIiX,IACF1a,EAAG,SAASgB,GACV,MAAOmc,GAAiBnc,EAAEqa,WAE5BwC,EAAG,SAAS7c,GACV,MAAOic,GAAYjc,EAAEqa,WAEvBpb,EAAG,SAASe,GACV,MAAOuc,GAAmBvc,EAAE8c,aAE9BC,EAAG,SAAS/c,GACV,MAAOqc,GAAcrc,EAAE8c,aAEzB7V,EAAGoS,EAAesC,GAClB3b,EAAG,SAASA,EAAGqV,GACb,MAAO2H,IAAkBhd,EAAEid,UAAW5H,EAAG,IAE3CnR,EAAG,SAASlE,EAAGqV,GACb,MAAO2H,IAAkBhd,EAAEid,UAAW5H,EAAG,IAE3CuE,EAAG,SAAS5Z,EAAGqV,GACb,MAAO2H,IAAkBhd,EAAEkd,WAAY7H,EAAG,IAE5C8H,EAAG,SAASnd,EAAGqV,GACb,MAAO2H,IAAkBhd,EAAEkd,WAAa,IAAM,GAAI7H,EAAG,IAEvD/L,EAAG,SAAStJ,EAAGqV,GACb,MAAO2H,IAAkB,EAAII,GAAQC,UAAUrd,GAAIqV,EAAG,IAExD0E,EAAG,SAAS/Z,EAAGqV,GACb,MAAO2H,IAAkBhd,EAAEsd,kBAAmBjI,EAAG,IAEnD9L,EAAG,SAASvJ,EAAGqV,GACb,MAAO2H,IAAkBhd,EAAE8c,WAAa,EAAGzH,EAAG,IAEhDwE,EAAG,SAAS7Z,EAAGqV,GACb,MAAO2H,IAAkBhd,EAAEud,aAAclI,EAAG,IAE9CA,EAAG,SAASrV,GACV,MAAO+b,KAAiB/b,EAAEkd,YAAc,MAE1CpD,EAAG,SAAS9Z,EAAGqV,GACb,MAAO2H,IAAkBhd,EAAEwd,aAAcnI,EAAG,IAE9CiF,EAAG,SAASta,EAAGqV,GACb,MAAO2H,IAAkBI,GAAQK,aAAazd,GAAIqV,EAAG,IAEvD7J,EAAG,SAASxL,GACV,MAAOA,GAAEqa,UAEXD,EAAG,SAASpa,EAAGqV,GACb,MAAO2H,IAAkBI,GAAQM,aAAa1d,GAAIqV,EAAG,IAEvDlW,EAAGka,EAAewC,GAClBL,EAAGnC,EAAeyC,GAClB3O,EAAG,SAASnN,EAAGqV,GACb,MAAO2H,IAAkBhd,EAAE2d,cAAgB,IAAKtI,EAAG,IAErDuI,EAAG,SAAS5d,EAAGqV,GACb,MAAO2H,IAAkBhd,EAAE2d,cAAgB,IAAKtI,EAAG,IAErD2E,EAAG6D,GACHC,IAAK,WACH,MAAO,MAGPtD,GACFxb,EAAGyb,EACHoC,EAAGjC,EACH3b,EAAG8b,EACHgC,EAAG7B,EACHjU,EAAGoU,EACHrb,EAAG+d,GACH7Z,EAAG6Z,GACHnE,EAAGoE,GACHb,EAAGa,GACH1U,EAAG2U,GACHlE,EAAGmE,GACH3U,EAAG4U,GACHtE,EAAGuE,GACH/I,EAAGoG,EACH3B,EAAGuE,GACH/D,EAAGgE,GACH9S,EAAG+S,GACHnE,EAAGoE,GACHrf,EAAGmc,EACHE,EAAGD,EACHpO,EAAGsR,GACHb,EAAGc,GACH1E,EAAG2E,GACHb,IAAKc,GAmCP,OAAOvF,GAOT,QAAS2D,IAAkBtc,EAAOoW,EAAMN,GACtC,GAAIQ,GAAe,EAARtW,EAAY,IAAM,GAAI6Y,GAAUvC,GAAQtW,EAAQA,GAAS,GAAId,EAAS2Z,EAAO3Z,MACxF,OAAOoX,IAAiBR,EAAT5W,EAAiB,GAAIsY,OAAM1B,EAAQ5W,EAAS,GAAG+W,KAAKG,GAAQyC,EAASA,GAEtF,QAASoD,IAAiBkC,GACxB,MAAO,IAAItY,QAAO,OAASsY,EAAM/X,IAAIhD,GAAG0C,SAASmQ,KAAK,KAAO,IAAK,KAEpE,QAASiG,IAAqBiC,GAE5B,IADA,GAAI/X,GAAM,GAAIlG,GAAU6B,EAAI,GAAIC,EAAImc,EAAMjf,SACjC6C,EAAIC,GAAGoE,EAAIlD,IAAIib,EAAMpc,GAAGmP,cAAenP,EAChD,OAAOqE,GAET,QAASyX,IAA2B/F,EAAMe,EAAQ9W,GAChDqc,GAAiBzX,UAAY,CAC7B,IAAI3E,GAAIoc,GAAiBtN,KAAK+H,EAAOnY,MAAMqB,EAAGA,EAAI,GAClD,OAAOC,IAAK8V,EAAKhN,GAAK9I,EAAE,GAAID,EAAIC,EAAE,GAAG9C,QAAU,GAEjD,QAAS0e,IAA8B9F,EAAMe,EAAQ9W,GACnDqc,GAAiBzX,UAAY,CAC7B,IAAI3E,GAAIoc,GAAiBtN,KAAK+H,EAAOnY,MAAMqB,GAC3C,OAAOC,IAAK8V,EAAK8B,GAAK5X,EAAE,GAAID,EAAIC,EAAE,GAAG9C,QAAU,GAEjD,QAAS4e,IAA8BhG,EAAMe,EAAQ9W,GACnDqc,GAAiBzX,UAAY,CAC7B,IAAI3E,GAAIoc,GAAiBtN,KAAK+H,EAAOnY,MAAMqB,GAC3C,OAAOC,IAAK8V,EAAK4B,GAAK1X,EAAE,GAAID,EAAIC,EAAE,GAAG9C,QAAU,GAEjD,QAAS8e,IAAsBlG,EAAMe,EAAQ9W,GAC3Cqc,GAAiBzX,UAAY,CAC7B,IAAI3E,GAAIoc,GAAiBtN,KAAK+H,EAAOnY,MAAMqB,EAAGA,EAAI,GAClD,OAAOC,IAAK8V,EAAKrL,GAAKzK,EAAE,GAAID,EAAIC,EAAE,GAAG9C,QAAU,GAEjD,QAAS6e,IAAkBjG,EAAMe,EAAQ9W,GACvCqc,GAAiBzX,UAAY,CAC7B,IAAI3E,GAAIoc,GAAiBtN,KAAK+H,EAAOnY,MAAMqB,EAAGA,EAAI,GAClD,OAAOC,IAAK8V,EAAKrL,EAAI4R,IAAoBrc,EAAE,IAAKD,EAAIC,EAAE,GAAG9C,QAAU,GAErE,QAAS+e,IAAkBnG,EAAMe,EAAQ9W,GACvC,MAAO,cAAc6E,KAAKiS,EAASA,EAAOnY,MAAMqB,EAAGA,EAAI,KAAO+V,EAAKwB,GAAKT,EACxE9W,EAAI,GAAK,GAEX,QAASsc,IAAmB/e,GAC1B,MAAOA,IAAKA,EAAI,GAAK,KAAO,KAE9B,QAASme,IAAyB3F,EAAMe,EAAQ9W,GAC9Cqc,GAAiBzX,UAAY,CAC7B,IAAI3E,GAAIoc,GAAiBtN,KAAK+H,EAAOnY,MAAMqB,EAAGA,EAAI,GAClD,OAAOC,IAAK8V,EAAKjP,EAAI7G,EAAE,GAAK,EAAGD,EAAIC,EAAE,GAAG9C,QAAU,GAEpD,QAASme,IAAiBvF,EAAMe,EAAQ9W,GACtCqc,GAAiBzX,UAAY,CAC7B,IAAI3E,GAAIoc,GAAiBtN,KAAK+H,EAAOnY,MAAMqB,EAAGA,EAAI,GAClD,OAAOC,IAAK8V,EAAKxY,GAAK0C,EAAE,GAAID,EAAIC,EAAE,GAAG9C,QAAU,GAEjD,QAASqe,IAAuBzF,EAAMe,EAAQ9W,GAC5Cqc,GAAiBzX,UAAY,CAC7B,IAAI3E,GAAIoc,GAAiBtN,KAAK+H,EAAOnY,MAAMqB,EAAGA,EAAI,GAClD,OAAOC,IAAK8V,EAAKlP,GAAK5G,EAAE,GAAID,EAAIC,EAAE,GAAG9C,QAAU,GAEjD,QAASoe,IAAoBxF,EAAMe,EAAQ9W,GACzCqc,GAAiBzX,UAAY,CAC7B,IAAI3E,GAAIoc,GAAiBtN,KAAK+H,EAAOnY,MAAMqB,EAAGA,EAAI,GAClD,OAAOC,IAAK8V,EAAKoB,GAAKlX,EAAE,GAAID,EAAIC,EAAE,GAAG9C,QAAU,GAEjD,QAASwe,IAAqB5F,EAAMe,EAAQ9W,GAC1Cqc,GAAiBzX,UAAY,CAC7B,IAAI3E,GAAIoc,GAAiBtN,KAAK+H,EAAOnY,MAAMqB,EAAGA,EAAI,GAClD,OAAOC,IAAK8V,EAAKqB,GAAKnX,EAAE,GAAID,EAAIC,EAAE,GAAG9C,QAAU,GAEjD,QAASye,IAAqB7F,EAAMe,EAAQ9W,GAC1Cqc,GAAiBzX,UAAY,CAC7B,IAAI3E,GAAIoc,GAAiBtN,KAAK+H,EAAOnY,MAAMqB,EAAGA,EAAI,GAClD,OAAOC,IAAK8V,EAAKsB,GAAKpX,EAAE,GAAID,EAAIC,EAAE,GAAG9C,QAAU,GAEjD,QAASse,IAA0B1F,EAAMe,EAAQ9W,GAC/Cqc,GAAiBzX,UAAY,CAC7B,IAAI3E,GAAIoc,GAAiBtN,KAAK+H,EAAOnY,MAAMqB,EAAGA,EAAI,GAClD,OAAOC,IAAK8V,EAAKuB,GAAKrX,EAAE,GAAID,EAAIC,EAAE,GAAG9C,QAAU,GAEjD,QAASie,IAAa7d,GACpB,GAAImD,GAAInD,EAAEgf,oBAAqBC,EAAK9b,EAAI,EAAI,IAAM,IAAK+b,EAAKxJ,GAAIvS,GAAK,GAAK,EAAGgc,EAAKzJ,GAAIvS,GAAK,EAC3F,OAAO8b,GAAKjC,GAAkBkC,EAAI,IAAK,GAAKlC,GAAkBmC,EAAI,IAAK,GAEzE,QAASP,IAA4BpG,EAAMe,EAAQ9W,GACjD2c,GAAkB/X,UAAY,CAC9B,IAAI3E,GAAI0c,GAAkB5N,KAAK+H,EAAOnY,MAAMqB,EAAGA,EAAI,GACnD,OAAOC,GAAID,EAAIC,EAAE,GAAG9C,OAAS,GAE/B,QAAS8c,IAAoB2C,GAE3B,IADA,GAAI3c,GAAI2c,EAAQzf,OAAQ6C,EAAI,KACnBA,EAAIC,GAAG2c,EAAQ5c,GAAG,GAAK5B,KAAKwe,EAAQ5c,GAAG,GAChD,OAAO,UAAS+V,GAEd,IADA,GAAI/V,GAAI,EAAGwK,EAAIoS,EAAQ5c,IACfwK,EAAE,GAAGuL,IAAOvL,EAAIoS,IAAU5c,EAClC,OAAOwK,GAAE,GAAGuL,IAyBhB,QAAS8G,OAiBT,QAASC,IAAYvgB,EAAGC,EAAGgM,GACzB,GAAI9L,GAAI8L,EAAEhH,EAAIjF,EAAIC,EAAGugB,EAAKrgB,EAAIH,EAAGygB,EAAKtgB,EAAIqgB,CAC1CvU,GAAE8J,EAAI/V,EAAIygB,GAAMxgB,EAAIugB,GAStB,QAASE,IAAsBC,EAAUpc,GACnCoc,GAAYC,GAA0BC,eAAeF,EAASjb,OAChEkb,GAA0BD,EAASjb,MAAMib,EAAUpc,GA2CvD,QAASuc,IAAkBC,EAAaxc,EAAUyc,GAChD,GAA6CC,GAAzCxd,EAAI,GAAIC,EAAIqd,EAAYngB,OAASogB,CAErC,KADAzc,EAAS2c,cACAzd,EAAIC,GAAGud,EAAaF,EAAYtd,GAAIc,EAAS6I,MAAM6T,EAAW,GAAIA,EAAW,GAAIA,EAAW,GACrG1c,GAAS4c,UAEX,QAASC,IAAqBL,EAAaxc,GACzC,GAAId,GAAI,GAAIC,EAAIqd,EAAYngB,MAE5B,KADA2D,EAAS8c,iBACA5d,EAAIC,GAAGod,GAAkBC,EAAYtd,GAAIc,EAAU,EAC5DA,GAAS+c,aAyBX,QAASC,MAOP,QAASC,GAAUC,EAAGC,GACpBD,GAAKtQ,GACLuQ,EAAIA,EAAIvQ,GAAa,EAAIjC,GAAI,CAC7B,IAAIyS,GAAKF,EAAIG,EAAIC,EAAMF,GAAM,EAAI,EAAI,GAAIG,EAAMD,EAAMF,EAAII,EAAO5S,KAAK+B,IAAIwQ,GAAIM,EAAO7S,KAAKU,IAAI6R,GAAIxgB,EAAI+gB,EAAQD,EAAME,EAAIC,EAAQJ,EAAO7gB,EAAIiO,KAAK+B,IAAI4Q,GAAM1R,EAAIlP,EAAI2gB,EAAM1S,KAAKU,IAAIiS,EAChLM,IAAmBja,IAAIgH,KAAKuC,MAAMtB,EAAG8R,IACrCN,EAAKH,EAAGU,EAAQJ,EAAME,EAAQD,EAXhC,GAAIK,GAAKC,EAAKV,EAAIO,EAAOF,CACzBM,IAAYnV,MAAQ,SAASqU,EAAGC,GAC9Ba,GAAYnV,MAAQoU,EACpBI,GAAMS,EAAMZ,GAAKtQ,GAAYgR,EAAQhT,KAAK+B,IAAIwQ,GAAKY,EAAMZ,GAAKvQ,GAAa,EAAIjC,GAAI,GACnF+S,EAAQ9S,KAAKU,IAAI6R,IASnBa,GAAYpB,QAAU,WACpBK,EAAUa,EAAKC,IAGnB,QAASE,IAAiBC,GACxB,GAAIhB,GAAIgB,EAAU,GAAIf,EAAIe,EAAU,GAAIV,EAAO5S,KAAK+B,IAAIwQ,EACxD,QAASK,EAAO5S,KAAK+B,IAAIuQ,GAAIM,EAAO5S,KAAKU,IAAI4R,GAAItS,KAAKU,IAAI6R,IAE5D,QAASgB,IAAoB1iB,EAAGC,GAC9B,MAAOD,GAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAE9C,QAAS0iB,IAAsB3iB,EAAGC,GAChC,OAASD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAID,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAID,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,IAExF,QAAS2iB,IAAoB5iB,EAAGC,GAC9BD,EAAE,IAAMC,EAAE,GACVD,EAAE,IAAMC,EAAE,GACVD,EAAE,IAAMC,EAAE,GAEZ,QAAS4iB,IAAsBC,EAAQ5hB,GACrC,OAAS4hB,EAAO,GAAK5hB,EAAG4hB,EAAO,GAAK5hB,EAAG4hB,EAAO,GAAK5hB,GAErD,QAAS6hB,IAA0B/hB,GACjC,GAAIkD,GAAIiL,KAAKyC,KAAK5Q,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GACvDA,GAAE,IAAMkD,EACRlD,EAAE,IAAMkD,EACRlD,EAAE,IAAMkD,EAEV,QAAS8e,IAAiBC,GACxB,OAAS9T,KAAKuC,MAAMuR,EAAU,GAAIA,EAAU,IAAK5T,GAAQ4T,EAAU,KAErE,QAASC,IAAsBljB,EAAGC,GAChC,MAAOyW,IAAI1W,EAAE,GAAKC,EAAE,IAAMkjB,IAAKzM,GAAI1W,EAAE,GAAKC,EAAE,IAAMkjB,GA2JpD,QAASC,IAAqB3B,EAAGC,GAC/BD,GAAKtQ,EACL,IAAI4Q,GAAO5S,KAAK+B,IAAIwQ,GAAKvQ,GACzBkS,IAAwBtB,EAAO5S,KAAK+B,IAAIuQ,GAAIM,EAAO5S,KAAKU,IAAI4R,GAAItS,KAAKU,IAAI6R,IAE3E,QAAS2B,IAAwBljB,EAAGgO,EAAGhK,KACnCmf,GACFC,KAAsBpjB,EAAIojB,IAAqBD,GAC/CE,KAAsBrV,EAAIqV,IAAqBF,GAC/CG,KAAsBtf,EAAIsf,IAAqBH,GAEjD,QAASI,MAWP,QAASlC,GAAUC,EAAGC,GACpBD,GAAKtQ,EACL,IAAI4Q,GAAO5S,KAAK+B,IAAIwQ,GAAKvQ,IAAahR,EAAI4hB,EAAO5S,KAAK+B,IAAIuQ,GAAItT,EAAI4T,EAAO5S,KAAKU,IAAI4R,GAAItd,EAAIgL,KAAKU,IAAI6R,GAAIlV,EAAI2C,KAAKuC,MAAMvC,KAAKyC,MAAMpF,EAAImX,EAAKxf,EAAIyf,EAAKzV,GAAK3B,GAAKA,EAAIoX,EAAKzjB,EAAI0jB,EAAK1f,GAAKqI,GAAKA,EAAIqX,EAAK1V,EAAIwV,EAAKxjB,GAAKqM,GAAIqX,EAAK1jB,EAAIwjB,EAAKxV,EAAIyV,EAAKzf,EAC3O2f,KAAqBtX,EACrBuX,IAAqBvX,GAAKqX,GAAMA,EAAK1jB,IACrC6jB,IAAqBxX,GAAKmX,GAAMA,EAAKxV,IACrC8V,IAAqBzX,GAAKoX,GAAMA,EAAKzf,IACrCkf,GAAwBQ,EAAIF,EAAIC,GAjBlC,GAAIC,GAAIF,EAAIC,CACZM,IAAgB9W,MAAQ,SAASqU,EAAGC,GAClCD,GAAKtQ,EACL,IAAI4Q,GAAO5S,KAAK+B,IAAIwQ,GAAKvQ,GACzB0S,GAAK9B,EAAO5S,KAAK+B,IAAIuQ,GACrBkC,EAAK5B,EAAO5S,KAAKU,IAAI4R,GACrBmC,EAAKzU,KAAKU,IAAI6R,GACdwC,GAAgB9W,MAAQoU,EACxB6B,GAAwBQ,EAAIF,EAAIC,IAYpC,QAASO,MACPD,GAAgB9W,MAAQgW,GAE1B,QAASgB,MAiBP,QAAS5C,GAAUC,EAAGC,GACpBD,GAAKtQ,EACL,IAAI4Q,GAAO5S,KAAK+B,IAAIwQ,GAAKvQ,IAAahR,EAAI4hB,EAAO5S,KAAK+B,IAAIuQ,GAAItT,EAAI4T,EAAO5S,KAAKU,IAAI4R,GAAItd,EAAIgL,KAAKU,IAAI6R,GAAI2C,EAAKV,EAAKxf,EAAIyf,EAAKzV,EAAGmW,EAAKV,EAAKzjB,EAAI0jB,EAAK1f,EAAGogB,EAAKV,EAAK1V,EAAIwV,EAAKxjB,EAAGoK,EAAI4E,KAAKyC,KAAKyS,EAAKA,EAAKC,EAAKA,EAAKC,EAAKA,GAAKrC,EAAI2B,EAAK1jB,EAAIwjB,EAAKxV,EAAIyV,EAAKzf,EAAGiM,EAAI7F,IAAM0E,GAAQiT,GAAK3X,EAAGiC,EAAI2C,KAAKuC,MAAMnH,EAAG2X,EAC/RsC,KAAqBpU,EAAIiU,EACzBI,IAAqBrU,EAAIkU,EACzBI,IAAqBtU,EAAImU,EACzBT,IAAqBtX,EACrBuX,IAAqBvX,GAAKqX,GAAMA,EAAK1jB,IACrC6jB,IAAqBxX,GAAKmX,GAAMA,EAAKxV,IACrC8V,IAAqBzX,GAAKoX,GAAMA,EAAKzf,IACrCkf,GAAwBQ,EAAIF,EAAIC,GA1BlC,GAAIvB,GAAKC,EAAKuB,EAAIF,EAAIC,CACtBM,IAAgB9W,MAAQ,SAASqU,EAAGC,GAClCW,EAAMZ,EAAGa,EAAMZ,EACfwC,GAAgB9W,MAAQoU,EACxBC,GAAKtQ,EACL,IAAI4Q,GAAO5S,KAAK+B,IAAIwQ,GAAKvQ,GACzB0S,GAAK9B,EAAO5S,KAAK+B,IAAIuQ,GACrBkC,EAAK5B,EAAO5S,KAAKU,IAAI4R,GACrBmC,EAAKzU,KAAKU,IAAI6R,GACd2B,GAAwBQ,EAAIF,EAAIC,IAElCM,GAAgB/C,QAAU,WACxBK,EAAUa,EAAKC,GACf4B,GAAgB/C,QAAUgD,GAC1BD,GAAgB9W,MAAQgW,IAe5B,QAASuB,IAAe3kB,EAAGC,GACzB,QAAS2kB,GAAQzkB,EAAGgO,GAClB,MAAOhO,GAAIH,EAAEG,EAAGgO,GAAIlO,EAAEE,EAAE,GAAIA,EAAE,IAKhC,MAHIH,GAAE6kB,QAAU5kB,EAAE4kB,SAAQD,EAAQC,OAAS,SAAS1kB,EAAGgO,GACrD,MAAOhO,GAAIF,EAAE4kB,OAAO1kB,EAAGgO,GAAIhO,GAAKH,EAAE6kB,OAAO1kB,EAAE,GAAIA,EAAE,MAE5CykB,EAET,QAASE,MACP,OAAO,EAET,QAASC,IAAmBC,EAAUzkB,EAAS0kB,EAAiBC,EAAa3gB,GAC3E,GAAI4gB,MAAcC,IAuBlB,IAtBAJ,EAASxQ,QAAQ,SAAS6Q,GACxB,MAAK3hB,EAAI2hB,EAAQzkB,OAAS,IAAM,GAAhC,CACA,GAAI8C,GAAG4hB,EAAKD,EAAQ,GAAIE,EAAKF,EAAQ3hB,EACrC,IAAIwf,GAAsBoC,EAAIC,GAAK,CACjChhB,EAAS2c,WACT,KAAK,GAAIzd,GAAI,EAAOC,EAAJD,IAASA,EAAGc,EAAS6I,OAAOkY,EAAKD,EAAQ5hB,IAAI,GAAI6hB,EAAG,GAEpE,YADA/gB,GAAS4c,UAGX,GAAInhB,GAAI,GAAIwlB,IAA+BF,EAAID,EAAS,MAAM,GAAOplB,EAAI,GAAIulB,IAA+BF,EAAI,KAAMtlB,GAAG,EACzHA,GAAEiM,EAAIhM,EACNklB,EAAQ1iB,KAAKzC,GACbolB,EAAK3iB,KAAKxC,GACVD,EAAI,GAAIwlB,IAA+BD,EAAIF,EAAS,MAAM,GAC1DplB,EAAI,GAAIulB,IAA+BD,EAAI,KAAMvlB,GAAG,GACpDA,EAAEiM,EAAIhM,EACNklB,EAAQ1iB,KAAKzC,GACbolB,EAAK3iB,KAAKxC,MAEZmlB,EAAKK,KAAKllB,GACVmlB,GAA+BP,GAC/BO,GAA+BN,GAC1BD,EAAQvkB,OAAb,CACA,IAAK,GAAI6C,GAAI,EAAGkiB,EAAQV,EAAiBvhB,EAAI0hB,EAAKxkB,OAAY8C,EAAJD,IAASA,EACjE2hB,EAAK3hB,GAAGyB,EAAIygB,GAASA,CAGvB,KADA,GAAwBC,GAAQxY,EAA5ByY,EAAQV,EAAQ,KACV,CAER,IADA,GAAIW,GAAUD,EAAOE,GAAY,EAC1BD,EAAQ1V,GAAG,IAAK0V,EAAUA,EAAQpiB,KAAOmiB,EAAO,MACvDD,GAASE,EAAQ3hB,EACjBI,EAAS2c,WACT,GAAG,CAED,GADA4E,EAAQ1V,EAAI0V,EAAQ7Z,EAAEmE,GAAI,EACtB0V,EAAQ5gB,EAAG,CACb,GAAI6gB,EACF,IAAK,GAAItiB,GAAI,EAAGC,EAAIkiB,EAAOhlB,OAAY8C,EAAJD,IAASA,EAAGc,EAAS6I,OAAOA,EAAQwY,EAAOniB,IAAI,GAAI2J,EAAM,QAE5F8X,GAAYY,EAAQ3lB,EAAG2lB,EAAQpiB,EAAEvD,EAAG,EAAGoE,EAEzCuhB,GAAUA,EAAQpiB,MACb,CACL,GAAIqiB,EAAW,CACbH,EAASE,EAAQzP,EAAElS,CACnB,KAAK,GAAIV,GAAImiB,EAAOhlB,OAAS,EAAG6C,GAAK,IAAKA,EAAGc,EAAS6I,OAAOA,EAAQwY,EAAOniB,IAAI,GAAI2J,EAAM,QAE1F8X,GAAYY,EAAQ3lB,EAAG2lB,EAAQzP,EAAElW,EAAG,GAAIoE,EAE1CuhB,GAAUA,EAAQzP,EAEpByP,EAAUA,EAAQ7Z,EAClB2Z,EAASE,EAAQ3hB,EACjB4hB,GAAaA,SACLD,EAAQ1V,EAClB7L,GAAS4c,YAGb,QAASuE,IAA+BM,GACtC,GAAMtiB,EAAIsiB,EAAMplB,OAAhB,CAEA,IADA,GAAI8C,GAAwBzD,EAArBwD,EAAI,EAAGzD,EAAIgmB,EAAM,KACfviB,EAAIC,GACX1D,EAAE0D,EAAIzD,EAAI+lB,EAAMviB,GAChBxD,EAAEoW,EAAIrW,EACNA,EAAIC,CAEND,GAAE0D,EAAIzD,EAAI+lB,EAAM,GAChB/lB,EAAEoW,EAAIrW,GAER,QAASwlB,IAA+BpY,EAAOwY,EAAQK,EAAON,GAC5D9jB,KAAK1B,EAAIiN,EACTvL,KAAKsC,EAAIyhB,EACT/jB,KAAKoK,EAAIga,EACTpkB,KAAKqD,EAAIygB,EACT9jB,KAAKuO,GAAI,EACTvO,KAAK6B,EAAI7B,KAAKwU,EAAI,KAEpB,QAAS6P,IAAYC,EAAcC,EAAUlB,EAAamB,GACxD,MAAO,UAASC,EAAQ/hB,GAuCtB,QAAS6I,GAAMqU,EAAGC,GAChB,GAAItU,GAAQkZ,EAAO7E,EAAGC,EAClByE,GAAa1E,EAAIrU,EAAM,GAAIsU,EAAItU,EAAM,KAAK7I,EAAS6I,MAAMqU,EAAGC,GAElE,QAAS6E,GAAU9E,EAAGC,GACpB,GAAItU,GAAQkZ,EAAO7E,EAAGC,EACtB8E,GAAKpZ,MAAMA,EAAM,GAAIA,EAAM,IAE7B,QAAS8T,KACPkE,EAAKhY,MAAQmZ,EACbC,EAAKtF,YAEP,QAASC,KACPiE,EAAKhY,MAAQA,EACboZ,EAAKrF,UAIP,QAASsF,GAAUhF,EAAGC,GACpBgF,EAAKjkB,MAAOgf,EAAGC,GACf,IAAItU,GAAQkZ,EAAO7E,EAAGC,EACtBiF,GAAavZ,MAAMA,EAAM,GAAIA,EAAM,IAErC,QAASwZ,KACPD,EAAazF,YACbwF,KAEF,QAASG,KACPJ,EAAUC,EAAK,GAAG,GAAIA,EAAK,GAAG,IAC9BC,EAAaxF,SACb,IAAkEkE,GAA9DyB,EAAQH,EAAaG,QAASC,EAAeC,EAAOA,SAAmBtjB,EAAIqjB,EAAanmB,MAI5F,IAHA8lB,EAAKO,MACLC,EAAQzkB,KAAKikB,GACbA,EAAO,KACFhjB,EACL,GAAY,EAARojB,EAAJ,CACEzB,EAAU0B,EAAa,EACvB,IAAoC3Z,GAAhC1J,EAAI2hB,EAAQzkB,OAAS,EAAG6C,EAAI,EAChC,IAAIC,EAAI,EAAG,CAGT,IAFKyjB,IAAgB5iB,EAAS8c,eAAgB8F,GAAiB,GAC/D5iB,EAAS2c,cACAzd,EAAIC,GAAGa,EAAS6I,OAAOA,EAAQiY,EAAQ5hB,IAAI,GAAI2J,EAAM,GAC9D7I,GAAS4c,eAITzd,GAAI,GAAa,EAARojB,GAAWC,EAAatkB,KAAKskB,EAAaE,MAAMviB,OAAOqiB,EAAaK,UACjFpC,EAASviB,KAAKskB,EAAajb,OAAOub,KArFpC,GAsDIrC,GAC+FkC,EAASR,EAvDxGF,EAAOJ,EAAS7hB,GAAW+iB,EAAmBhB,EAAOzB,OAAOwB,EAAU,GAAIA,EAAU,IACpFjB,GACFhY,MAAOA,EACP8T,UAAWA,EACXC,QAASA,EACTE,aAAc,WACZ+D,EAAKhY,MAAQqZ,EACbrB,EAAKlE,UAAY0F,EACjBxB,EAAKjE,QAAU0F,EACf7B,KACAkC,MAEF5F,WAAY,WACV8D,EAAKhY,MAAQA,EACbgY,EAAKlE,UAAYA,EACjBkE,EAAKjE,QAAUA,EACf6D,EAAWlgB,GAAGyiB,MAAMvC,EACpB,IAAIC,GAAkBuC,GAAsBF,EAAkBJ,EAC1DlC,GAASpkB,QACNumB,IAAgB5iB,EAAS8c,eAAgB8F,GAAiB,GAC/DpC,GAAmBC,EAAUyC,GAAiBxC,EAAiBC,EAAa3gB,IACnE0gB,IACJkC,IAAgB5iB,EAAS8c,eAAgB8F,GAAiB,GAC/D5iB,EAAS2c,YACTgE,EAAY,KAAM,KAAM,EAAG3gB,GAC3BA,EAAS4c,WAEPgG,IAAgB5iB,EAAS+c,aAAc6F,GAAiB,GAC5DnC,EAAWkC,EAAU,MAEvBQ,OAAQ,WACNnjB,EAAS8c,eACT9c,EAAS2c,YACTgE,EAAY,KAAM,KAAM,EAAG3gB,GAC3BA,EAAS4c,UACT5c,EAAS+c,eAoBT0F,EAASW,KAA6BhB,EAAeP,EAASY,GAASG,GAAiB,CAgC5F,OAAO/B,IAGX,QAASiC,IAA0BhC,GACjC,MAAOA,GAAQzkB,OAAS,EAE1B,QAAS+mB,MACP,GAAgBnB,GAAZoB,IACJ,QACE1G,UAAW,WACT0G,EAAMnlB,KAAK+jB,OAEbpZ,MAAO,SAASqU,EAAGC,GACjB8E,EAAK/jB,MAAOgf,EAAGC,KAEjBP,QAAStd,EACTmjB,OAAQ,WACN,GAAIA,GAASY,CAGb,OAFAA,MACApB,EAAO,KACAQ,GAETa,OAAQ,WACFD,EAAMhnB,OAAS,GAAGgnB,EAAMnlB,KAAKmlB,EAAMX,MAAMviB,OAAOkjB,EAAMR,YAIhE,QAASK,IAAgBznB,EAAGC,GAC1B,QAASD,EAAIA,EAAEG,GAAG,GAAK,EAAIH,EAAE,GAAKsP,GAAQ6T,GAAI7T,GAAQtP,EAAE,MAAQC,EAAIA,EAAEE,GAAG,GAAK,EAAIF,EAAE,GAAKqP,GAAQ6T,GAAI7T,GAAQrP,EAAE,IAGjH,QAAS6nB,IAA4BvjB,GACnC,GAAmCuiB,GAA/BlF,MAAUmG,MAAUC,KACxB,QACE9G,UAAW,WACT3c,EAAS2c,YACT4F,EAAQ,GAEV1Z,MAAO,SAAS6a,EAAIC,GAClB,GAAIC,GAAMF,EAAK,EAAI/Y,IAAKA,GAAGyS,EAAKjL,GAAIuR,EAAKrG,EACrClL,IAAIiL,EAAKzS,IAAKiU,IAChB5e,EAAS6I,MAAMwU,EAAImG,GAAMA,EAAKG,GAAM,EAAI,EAAI5Y,IAASA,IACrD/K,EAAS6I,MAAM4a,EAAKD,GACpBxjB,EAAS4c,UACT5c,EAAS2c,YACT3c,EAAS6I,MAAM+a,EAAKJ,GACpBxjB,EAAS6I,MAAM6a,EAAIF,GACnBjB,EAAQ,GACCkB,IAAQG,GAAOxG,GAAMzS,KAC1BwH,GAAIkL,EAAKoG,GAAO7E,KAAGvB,GAAMoG,EAAM7E,IAC/BzM,GAAIuR,EAAKE,GAAOhF,KAAG8E,GAAME,EAAMhF,IACnC4E,EAAKK,GAAiCxG,EAAImG,EAAIE,EAAIC,GAClD3jB,EAAS6I,MAAM4a,EAAKD,GACpBxjB,EAAS4c,UACT5c,EAAS2c,YACT3c,EAAS6I,MAAM+a,EAAKJ,GACpBjB,EAAQ,GAEVviB,EAAS6I,MAAMwU,EAAKqG,EAAIF,EAAKG,GAC7BF,EAAMG,GAERhH,QAAS,WACP5c,EAAS4c,UACTS,EAAKmG,OAEPjB,MAAO,WACL,MAAO,GAAIA,IAIjB,QAASsB,IAAiCxG,EAAImG,EAAIE,EAAIC,GACpD,GAAI/F,GAAOkG,EAAOC,EAAWnZ,KAAKU,IAAI+R,EAAKqG,EAC3C,OAAOvR,IAAI4R,GAAYnF,GAAIhU,KAAKoZ,MAAMpZ,KAAKU,IAAIkY,IAAOM,EAAQlZ,KAAK+B,IAAIgX,IAAO/Y,KAAKU,IAAIoY,GAAM9Y,KAAKU,IAAIqY,IAAO/F,EAAQhT,KAAK+B,IAAI6W,IAAO5Y,KAAKU,IAAI+R,KAAQO,EAAQkG,EAAQC,KAAcP,EAAKG,GAAM,EAEjM,QAASM,IAAmCC,EAAMC,EAAIC,EAAWpkB,GAC/D,GAAImd,EACJ,IAAY,MAAR+G,EACF/G,EAAIiH,EAAYrZ,GAChB/K,EAAS6I,OAAO8B,GAAGwS,GACnBnd,EAAS6I,MAAM,EAAGsU,GAClBnd,EAAS6I,MAAM8B,GAAGwS,GAClBnd,EAAS6I,MAAM8B,GAAG,GAClB3K,EAAS6I,MAAM8B,IAAIwS,GACnBnd,EAAS6I,MAAM,GAAIsU,GACnBnd,EAAS6I,OAAO8B,IAAIwS,GACpBnd,EAAS6I,OAAO8B,GAAG,GACnB3K,EAAS6I,OAAO8B,GAAGwS,OACd,IAAIhL,GAAI+R,EAAK,GAAKC,EAAG,IAAMvF,GAAG,CACnC,GAAIle,GAAIwjB,EAAK,GAAKC,EAAG,GAAKxZ,IAAKA,EAC/BwS,GAAIiH,EAAY1jB,EAAI,EACpBV,EAAS6I,OAAOnI,EAAGyc,GACnBnd,EAAS6I,MAAM,EAAGsU,GAClBnd,EAAS6I,MAAMnI,EAAGyc,OAElBnd,GAAS6I,MAAMsb,EAAG,GAAIA,EAAG,IAG7B,QAASlB,IAAsBpa,EAAO8Z,GACpC,GAAI0B,GAAWxb,EAAM,GAAIyb,EAAWzb,EAAM,GAAI0b,GAAmB3Z,KAAKU,IAAI+Y,IAAYzZ,KAAK+B,IAAI0X,GAAW,GAAKG,EAAa,EAAGC,EAAU,CACzI5G,IAAmB6G,OACnB,KAAK,GAAIxlB,GAAI,EAAGC,EAAIwjB,EAAQtmB,OAAY8C,EAAJD,IAASA,EAAG,CAC9C,GAAIijB,GAAOQ,EAAQzjB,GAAI8G,EAAImc,EAAK9lB,MAChC,IAAK2J,EAEL,IADA,GAAI2e,GAASxC,EAAK,GAAI9E,EAAKsH,EAAO,GAAInB,EAAKmB,EAAO,GAAK,EAAIha,GAAI,EAAG+S,EAAQ9S,KAAKU,IAAIkY,GAAK5F,EAAQhT,KAAK+B,IAAI6W,GAAKzd,EAAI,IACrG,CACPA,IAAMC,IAAGD,EAAI,GACjB8C,EAAQsZ,EAAKpc,EACb,IAAImX,GAAIrU,EAAM,GAAIsU,EAAItU,EAAM,GAAK,EAAI8B,GAAI,EAAG8S,EAAO7S,KAAKU,IAAI6R,GAAIK,EAAO5S,KAAK+B,IAAIwQ,GAAIC,EAAKF,EAAIG,EAAIC,EAAMF,GAAM,EAAI,EAAI,GAAIG,EAAMD,EAAMF,EAAIwH,EAAerH,EAAM5S,GAAGhO,EAAI+gB,EAAQD,CAG7K,IAFAI,GAAmBja,IAAIgH,KAAKuC,MAAMxQ,EAAI2gB,EAAM1S,KAAKU,IAAIiS,GAAMK,EAAQJ,EAAO7gB,EAAIiO,KAAK+B,IAAI4Q,KACvFiH,GAAcI,EAAexH,EAAKE,EAAMuH,GAAIzH,EACxCwH,EAAevH,GAAMgH,EAAWnH,GAAKmH,EAAU,CACjD,GAAIS,GAAM1G,GAAsBH,GAAiB0G,GAAS1G,GAAiBpV,GAC3E2V,IAA0BsG,EAC1B,IAAIC,GAAe3G,GAAsBmG,EAAgBO,EACzDtG,IAA0BuG,EAC1B,IAAIC,IAAQJ,EAAexH,GAAM,EAAI,GAAK,GAAKtS,GAAQia,EAAa,KAChET,EAAWU,GAAQV,IAAaU,IAASF,EAAI,IAAMA,EAAI,OACzDL,GAAWG,EAAexH,GAAM,EAAI,EAAI,IAG5C,IAAKrX,IAAK,KACVsX,GAAKH,EAAGQ,EAAQD,EAAMG,EAAQJ,EAAMmH,EAAS9b,GAGjD,QAAsB+V,GAAd4F,GAAgC5F,GAAb4F,GAAuC,EAArB3G,IAAoC,EAAV4G,EAEzE,QAASQ,IAAkBC,GAGzB,QAASC,GAAQjI,EAAGC,GAClB,MAAOvS,MAAK+B,IAAIuQ,GAAKtS,KAAK+B,IAAIwQ,GAAKiI,EAErC,QAASvD,GAAS7hB,GAChB,GAAI2kB,GAAQU,EAAIC,EAAIC,EAAKhD,CACzB,QACE5F,UAAW,WACT4I,EAAMD,GAAK,EACX/C,EAAQ,GAEV1Z,MAAO,SAASqU,EAAGC,GACjB,GAAuBqI,GAAnBC,GAAWvI,EAAGC,GAAatR,EAAIsZ,EAAQjI,EAAGC,GAAIzZ,EAAIgiB,EAAc7Z,EAAI,EAAI8Z,EAAKzI,EAAGC,GAAKtR,EAAI8Z,EAAKzI,GAAS,EAAJA,EAAQvS,IAAKA,IAAIwS,GAAK,CAU7H,KATKwH,IAAWY,EAAMD,EAAKzZ,IAAI7L,EAAS2c,YACpC9Q,IAAMyZ,IACRE,EAASI,EAAUjB,EAAQc,IACvB9G,GAAsBgG,EAAQa,IAAW7G,GAAsB8G,EAAQD,MACzEC,EAAO,IAAM7G,GACb6G,EAAO,IAAM7G,GACb/S,EAAIsZ,EAAQM,EAAO,GAAIA,EAAO,MAG9B5Z,IAAMyZ,EACR/C,EAAQ,EACJ1W,GACF7L,EAAS2c,YACT6I,EAASI,EAAUH,EAAQd,GAC3B3kB,EAAS6I,MAAM2c,EAAO,GAAIA,EAAO,MAEjCA,EAASI,EAAUjB,EAAQc,GAC3BzlB,EAAS6I,MAAM2c,EAAO,GAAIA,EAAO,IACjCxlB,EAAS4c,WAEX+H,EAASa,MACJ,IAAIK,GAAiBlB,GAAUe,EAAc7Z,EAAG,CACrD,GAAI2F,EACE9N,GAAI2hB,KAAQ7T,EAAIoU,EAAUH,EAAQd,GAAQ,MAC9CpC,EAAQ,EACJmD,GACF1lB,EAAS2c,YACT3c,EAAS6I,MAAM2I,EAAE,GAAG,GAAIA,EAAE,GAAG,IAC7BxR,EAAS6I,MAAM2I,EAAE,GAAG,GAAIA,EAAE,GAAG,IAC7BxR,EAAS4c,YAET5c,EAAS6I,MAAM2I,EAAE,GAAG,GAAIA,EAAE,GAAG,IAC7BxR,EAAS4c,UACT5c,EAAS2c,YACT3c,EAAS6I,MAAM2I,EAAE,GAAG,GAAIA,EAAE,GAAG,OAI/B3F,GAAO8Y,GAAWhG,GAAsBgG,EAAQc,IAClDzlB,EAAS6I,MAAM4c,EAAO,GAAIA,EAAO,IAEnCd,EAASc,EAAQH,EAAKzZ,EAAGwZ,EAAK3hB,GAEhCkZ,QAAS,WACH0I,GAAItlB,EAAS4c,UACjB+H,EAAS,MAEXpC,MAAO,WACL,MAAOA,IAASgD,GAAOD,IAAO,IAIpC,QAASM,GAAUnqB,EAAGC,EAAGoqB,GACvB,GAAIC,GAAK9H,GAAiBxiB,GAAIuqB,EAAK/H,GAAiBviB,GAChDuqB,GAAO,EAAG,EAAG,GAAKC,EAAK9H,GAAsB2H,EAAIC,GAAKG,EAAOhI,GAAoB+H,EAAIA,GAAKE,EAAOF,EAAG,GAAIG,EAAcF,EAAOC,EAAOA,CACxI,KAAKC,EAAa,OAAQP,GAAOrqB,CACjC,IAAI6qB,GAAKlB,EAAKe,EAAOE,EAAaE,GAAMnB,EAAKgB,EAAOC,EAAaG,EAAQpI,GAAsB6H,EAAIC,GAAK5M,EAAIgF,GAAsB2H,EAAIK,GAAK9M,EAAI8E,GAAsB4H,EAAIK,EACzKlI,IAAoB/E,EAAGE,EACvB,IAAImE,GAAI6I,EAAOve,EAAIkW,GAAoB7E,EAAGqE,GAAI8I,EAAKtI,GAAoBR,EAAGA,GAAI+I,EAAKze,EAAIA,EAAIwe,GAAMtI,GAAoB7E,EAAGA,GAAK,EAC7H,MAAS,EAALoN,GAAJ,CACA,GAAIlV,GAAI5G,KAAKyC,KAAKqZ,GAAKC,EAAIrI,GAAsBX,IAAK1V,EAAIuJ,GAAKiV,EAG/D,IAFApI,GAAoBsI,EAAGrN,GACvBqN,EAAIlI,GAAiBkI,IAChBb,EAAK,MAAOa,EACjB,IAAgD/mB,GAA5Cyd,EAAK5hB,EAAE,GAAIioB,EAAKhoB,EAAE,GAAI8nB,EAAK/nB,EAAE,GAAIkoB,EAAKjoB,EAAE,EACnC2hB,GAALqG,IAAS9jB,EAAIyd,EAAIA,EAAKqG,EAAIA,EAAK9jB,EACnC,IAAIgnB,GAAKlD,EAAKrG,EAAIwJ,EAAQ1U,GAAIyU,EAAKjc,IAAKiU,GAAGyF,EAAWwC,GAAcjI,GAALgI,CAE/D,KADKC,GAAcrD,EAALG,IAAS/jB,EAAI4jB,EAAIA,EAAKG,EAAIA,EAAK/jB,GACzCykB,EAAWwC,EAAQrD,EAAKG,EAAK,EAAIgD,EAAE,IAAMxU,GAAIwU,EAAE,GAAKtJ,GAAMuB,GAAI4E,EAAKG,GAAMH,GAAMmD,EAAE,IAAMA,EAAE,IAAMhD,EAAKiD,EAAKjc,IAAK0S,GAAMsJ,EAAE,IAAMA,EAAE,IAAMjD,GAAK,CAC3I,GAAIoD,GAAKxI,GAAsBX,IAAK1V,EAAIuJ,GAAKiV,EAE7C,OADApI,IAAoByI,EAAIxN,IACfqN,EAAGlI,GAAiBqI,MAGjC,QAASnB,GAAKzI,EAAGC,GACf,GAAI3Q,GAAIkZ,EAAcR,EAASva,GAAIua,EAAQS,EAAO,CAGlD,QAFSnZ,EAAL0Q,EAAQyI,GAAQ,EAAYzI,EAAI1Q,IAAGmZ,GAAQ,IACtCnZ,EAAL2Q,EAAQwI,GAAQ,EAAYxI,EAAI3Q,IAAGmZ,GAAQ,GACxCA,EA5FT,GAAIP,GAAKxa,KAAK+B,IAAIuY,GAASQ,EAAcN,EAAK,EAAGS,EAAgB1T,GAAIiT,GAAMxG,GAAG+B,EAAcoG,GAAyB7B,EAAQ,EAAItY,GACjI,OAAO+U,IAAYwD,EAAStD,EAAUlB,EAAa+E,GAAgB,GAAIR,KAAcva,GAAGua,EAASva,KA8FnG,QAASqc,IAAiB1H,EAAIF,EAAI6H,EAAIC,GACpC,MAAO,UAASjF,GACd,GAAgHzV,GAA5G/Q,EAAIwmB,EAAKxmB,EAAGC,EAAIumB,EAAKvmB,EAAGyrB,EAAK1rB,EAAEG,EAAGwrB,EAAK3rB,EAAEmO,EAAGyd,EAAK3rB,EAAEE,EAAG0rB,EAAK5rB,EAAEkO,EAAG6H,EAAK,EAAGC,EAAK,EAAG6V,EAAKF,EAAKF,EAAIK,EAAKF,EAAKF,CAE5G,IADA5a,EAAI8S,EAAK6H,EACJI,KAAM/a,EAAI,GAAf,CAEA,GADAA,GAAK+a,EACI,EAALA,EAAQ,CACV,GAAQ9V,EAAJjF,EAAQ,MACJkF,GAAJlF,IAAQkF,EAAKlF,OACZ,IAAI+a,EAAK,EAAG,CACjB,GAAI/a,EAAIkF,EAAI,MACRlF,GAAIiF,IAAIA,EAAKjF,GAGnB,GADAA,EAAIya,EAAKE,EACJI,KAAU,EAAJ/a,GAAX,CAEA,GADAA,GAAK+a,EACI,EAALA,EAAQ,CACV,GAAI/a,EAAIkF,EAAI,MACRlF,GAAIiF,IAAIA,EAAKjF,OACZ,IAAI+a,EAAK,EAAG,CACjB,GAAQ9V,EAAJjF,EAAQ,MACJkF,GAAJlF,IAAQkF,EAAKlF,GAGnB,GADAA,EAAI4S,EAAKgI,EACJI,KAAMhb,EAAI,GAAf,CAEA,GADAA,GAAKgb,EACI,EAALA,EAAQ,CACV,GAAQ/V,EAAJjF,EAAQ,MACJkF,GAAJlF,IAAQkF,EAAKlF,OACZ,IAAIgb,EAAK,EAAG,CACjB,GAAIhb,EAAIkF,EAAI,MACRlF,GAAIiF,IAAIA,EAAKjF,GAGnB,GADAA,EAAI0a,EAAKE,EACJI,KAAU,EAAJhb,GAAX,CAEA,GADAA,GAAKgb,EACI,EAALA,EAAQ,CACV,GAAIhb,EAAIkF,EAAI,MACRlF,GAAIiF,IAAIA,EAAKjF,OACZ,IAAIgb,EAAK,EAAG,CACjB,GAAQ/V,EAAJjF,EAAQ,MACJkF,GAAJlF,IAAQkF,EAAKlF,GAUnB,MARIiF,GAAK,IAAGwQ,EAAKxmB,GACfG,EAAGurB,EAAK1V,EAAK8V,EACb3d,EAAGwd,EAAK3V,EAAK+V,IAEN,EAAL9V,IAAQuQ,EAAKvmB,GACfE,EAAGurB,EAAKzV,EAAK6V,EACb3d,EAAGwd,EAAK1V,EAAK8V,IAERvF,OAqBX,QAASwF,IAAkBnI,EAAIF,EAAI6H,EAAIC,GA2HrC,QAASQ,GAAO5V,EAAGsS,GACjB,MAAOjS,IAAIL,EAAE,GAAKwN,GAAMV,GAAIwF,EAAY,EAAI,EAAI,EAAIjS,GAAIL,EAAE,GAAKmV,GAAMrI,GAAIwF,EAAY,EAAI,EAAI,EAAIjS,GAAIL,EAAE,GAAKsN,GAAMR,GAAIwF,EAAY,EAAI,EAAI,EAAIA,EAAY,EAAI,EAAI,EAEpK,QAASpoB,GAAQP,EAAGC,GAClB,MAAOisB,GAAclsB,EAAEG,EAAGF,EAAEE,GAE9B,QAAS+rB,GAAclsB,EAAGC,GACxB,GAAIksB,GAAKF,EAAOjsB,EAAG,GAAIosB,EAAKH,EAAOhsB,EAAG,EACtC,OAAOksB,KAAOC,EAAKD,EAAKC,EAAY,IAAPD,EAAWlsB,EAAE,GAAKD,EAAE,GAAY,IAAPmsB,EAAWnsB,EAAE,GAAKC,EAAE,GAAY,IAAPksB,EAAWnsB,EAAE,GAAKC,EAAE,GAAKA,EAAE,GAAKD,EAAE,GAlInH,MAAO,UAASuE,GA+Bd,QAAS8nB,GAAchW,GAErB,IAAK,GADDiW,GAAK,EAAG5oB,EAAIwjB,EAAQtmB,OAAQuN,EAAIkI,EAAE,GAC7B5S,EAAI,EAAOC,EAAJD,IAASA,EACvB,IAAK,GAAmDxD,GAA/CqK,EAAI,EAAG8F,EAAI8W,EAAQzjB,GAAI8G,EAAI6F,EAAExP,OAAQZ,EAAIoQ,EAAE,GAAW7F,EAAJD,IAASA,EAClErK,EAAImQ,EAAE9F,GACFtK,EAAE,IAAMmO,EACNlO,EAAE,GAAKkO,GAAKa,EAAWhP,EAAGC,EAAGoW,GAAK,KAAKiW,EAEvCrsB,EAAE,IAAMkO,GAAKa,EAAWhP,EAAGC,EAAGoW,GAAK,KAAKiW,EAE9CtsB,EAAIC,CAGR,OAAc,KAAPqsB,EAET,QAASpH,GAAYuD,EAAMC,EAAIC,EAAWpkB,GACxC,GAAIvE,GAAI,EAAGusB,EAAK,CAChB,IAAY,MAAR9D,IAAiBzoB,EAAIisB,EAAOxD,EAAME,OAAiB4D,EAAKN,EAAOvD,EAAIC,KAAeuD,EAAczD,EAAMC,GAAM,EAAIC,EAAY,GAC9H,EACEpkB,GAAS6I,MAAY,IAANpN,GAAiB,IAANA,EAAU6jB,EAAK2H,EAAIxrB,EAAI,EAAIyrB,EAAK9H,UAClD3jB,GAAKA,EAAI2oB,EAAY,GAAK,KAAO4D,OAE3ChoB,GAAS6I,MAAMsb,EAAG,GAAIA,EAAG,IAG7B,QAASvC,GAAahmB,EAAGgO,GACvB,MAAahO,IAAN0jB,GAAgB2H,GAALrrB,GAAiBgO,GAANwV,GAAgB8H,GAALtd,EAE1C,QAASf,GAAMjN,EAAGgO,GACZgY,EAAahmB,EAAGgO,IAAI5J,EAAS6I,MAAMjN,EAAGgO,GAG5C,QAAS+S,KACPkE,EAAKhY,MAAQof,EACTtF,GAASA,EAAQzkB,KAAKikB,MAC1B+F,GAAQ,EACRC,GAAK,EACLC,EAAKC,MAEP,QAASzL,KACH6D,IACFwH,EAAUK,EAAKC,GACXC,GAAOL,GAAIM,EAAenF,SAC9B7C,EAASviB,KAAKuqB,EAAehG,WAE/B5B,EAAKhY,MAAQA,EACTsf,GAAInoB,EAAS4c,UAEnB,QAASqL,GAAUrsB,EAAGgO,GACpBhO,EAAIgP,KAAK+C,KAAK+a,GAAsB9d,KAAKiD,IAAI6a,GAAsB9sB,IACnEgO,EAAIgB,KAAK+C,KAAK+a,GAAsB9d,KAAKiD,IAAI6a,GAAsB9e,GACnE,IAAIiC,GAAI+V,EAAahmB,EAAGgO,EAExB,IADI+Y,GAASR,EAAKjkB,MAAOtC,EAAGgO,IACxBse,EACFI,EAAM1sB,EAAG2sB,EAAM3e,EAAG4e,EAAM3c,EACxBqc,GAAQ,EACJrc,IACF7L,EAAS2c,YACT3c,EAAS6I,MAAMjN,EAAGgO,QAGpB,IAAIiC,GAAKsc,EAAInoB,EAAS6I,MAAMjN,EAAGgO,OAAS,CACtC,GAAIjK,IACFlE,GACEG,EAAGwsB,EACHxe,EAAGye,GAEL3sB,GACEE,EAAGA,EACHgO,EAAGA,GAGHiY,GAASliB,IACNwoB,IACHnoB,EAAS2c,YACT3c,EAAS6I,MAAMlJ,EAAElE,EAAEG,EAAG+D,EAAElE,EAAEmO,IAE5B5J,EAAS6I,MAAMlJ,EAAEjE,EAAEE,EAAG+D,EAAEjE,EAAEkO,GACrBiC,GAAG7L,EAAS4c,UACjB2F,GAAQ,GACC1W,IACT7L,EAAS2c,YACT3c,EAAS6I,MAAMjN,EAAGgO,GAClB2Y,GAAQ,GAId6F,EAAKxsB,EAAGysB,EAAKze,EAAGue,EAAKtc,EArHvB,GAAqH4U,GAAUkC,EAASR,EA6DpImG,EAAKC,EAAKC,EAAKJ,EAAIC,EAAIF,EAAID,EAAO3F,EA7DlCoG,EAAY3oB,EAAUyoB,EAAiBrF,KAA6BvB,EAAWmF,GAAiB1H,EAAIF,EAAI6H,EAAIC,GAC5GrG,GACFhY,MAAOA,EACP8T,UAAWA,EACXC,QAASA,EACTE,aAAc,WACZ9c,EAAWyoB,EACXhI,KACAkC,KACAJ,GAAQ,GAEVxF,WAAY,WACV/c,EAAW2oB,EACXlI,EAAWlgB,GAAGyiB,MAAMvC,EACpB,IAAIC,GAAkBoH,GAAgBxI,EAAI4H,IAAO0B,EAASrG,GAAS7B,EAAiByE,EAAU1E,EAASpkB,QACnGusB,GAAUzD,KACZnlB,EAAS8c,eACL8L,IACF5oB,EAAS2c,YACTgE,EAAY,KAAM,KAAM,EAAG3gB,GAC3BA,EAAS4c,WAEPuI,GACF3E,GAAmBC,EAAUzkB,EAAS0kB,EAAiBC,EAAa3gB,GAEtEA,EAAS+c,cAEX0D,EAAWkC,EAAUR,EAAO,MA4FhC,OAAOtB,IAaX,QAASgI,IAAaC,GACpB,GAAItF,GAAK,EAAGG,EAAKhZ,GAAI,EAAG3E,EAAI+iB,GAAyBD,GAAYhX,EAAI9L,EAAEwd,EAAIG,EAK3E,OAJA7R,GAAEkX,UAAY,SAASzrB,GACrB,MAAKnB,WAAUC,OACR2J,EAAEwd,EAAKjmB,EAAE,GAAKoN,GAAI,IAAKgZ,EAAKpmB,EAAE,GAAKoN,GAAI,MADd6Y,EAAK7Y,GAAI,IAAKgZ,EAAKhZ,GAAI,MAGlDmH,EAET,QAASmX,IAAsBzF,EAAIG,GAEjC,QAASuF,GAAQhM,EAAGC,GAClB,GAAIgM,GAAIve,KAAKyC,KAAK+b,EAAI,EAAIjqB,EAAIyL,KAAKU,IAAI6R,IAAMhe,CAC7C,QAASgqB,EAAIve,KAAKU,IAAI4R,GAAK/d,GAAIkqB,EAAKF,EAAIve,KAAK+B,IAAIuQ,IAHnD,GAAIQ,GAAQ9S,KAAKU,IAAIkY,GAAKrkB,GAAKue,EAAQ9S,KAAKU,IAAIqY,IAAO,EAAGyF,EAAI,EAAI1L,GAAS,EAAIve,EAAIue,GAAQ2L,EAAKze,KAAKyC,KAAK+b,GAAKjqB,CAS/G,OAJA+pB,GAAQ5I,OAAS,SAAS1kB,EAAGgO,GAC3B,GAAI0f,GAAOD,EAAKzf,CAChB,QAASgB,KAAKuC,MAAMvR,EAAG0tB,GAAQnqB,EAAG2L,IAASse,GAAKxtB,EAAIA,EAAI0tB,EAAOA,GAAQnqB,EAAIA,IAAM,EAAIA,MAEhF+pB,EAmGT,QAASK,MAMP,QAAStM,GAAUrhB,EAAGgO,GACpB4f,IAA0BpK,EAAKxjB,EAAI0jB,EAAK1V,EACxC0V,EAAK1jB,EAAGwjB,EAAKxV,EAPf,GAAI6f,GAAKC,EAAKpK,EAAIF,CAClBuK,IAAgB9gB,MAAQ,SAASjN,EAAGgO,GAClC+f,GAAgB9gB,MAAQoU,EACxBwM,EAAMnK,EAAK1jB,EAAG8tB,EAAMtK,EAAKxV,GAM3B+f,GAAgB/M,QAAU,WACxBK,EAAUwM,EAAKC,IAWnB,QAASE,IAAuBhuB,EAAGgO,GACzBigB,GAAJjuB,IAAyBiuB,GAAsBjuB,GAC/CA,EAAIkuB,KAAqBA,GAAsBluB,GAC3CmuB,GAAJngB,IAAyBmgB,GAAsBngB,GAC/CA,EAAIogB,KAAqBA,GAAsBpgB,GAErD,QAASqgB,MA2BP,QAASphB,GAAMjN,EAAGgO,GAChB6Y,EAAOvkB,KAAK,IAAKtC,EAAG,IAAKgO,EAAGsgB,GAE9B,QAASC,GAAevuB,EAAGgO,GACzB6Y,EAAOvkB,KAAK,IAAKtC,EAAG,IAAKgO,GACzBwgB,EAAOvhB,MAAQmZ,EAEjB,QAASA,GAAUpmB,EAAGgO,GACpB6Y,EAAOvkB,KAAK,IAAKtC,EAAG,IAAKgO,GAE3B,QAASgT,KACPwN,EAAOvhB,MAAQA,EAEjB,QAASwhB,KACP5H,EAAOvkB,KAAK,KAxCd,GAAIgsB,GAAcI,GAAwB,KAAM7H,KAC5C2H,GACFvhB,MAAOA,EACP8T,UAAW,WACTyN,EAAOvhB,MAAQshB,GAEjBvN,QAASA,EACTE,aAAc,WACZsN,EAAOxN,QAAUyN,GAEnBtN,WAAY,WACVqN,EAAOxN,QAAUA,EACjBwN,EAAOvhB,MAAQA,GAEjB0hB,YAAa,SAAShtB,GAEpB,MADA2sB,GAAcI,GAAwB/sB,GAC/B6sB,GAETrb,OAAQ,WACN,GAAI0T,EAAOpmB,OAAQ,CACjB,GAAI0S,GAAS0T,EAAOrP,KAAK,GAEzB,OADAqP,MACO1T,IAoBb,OAAOqb,GAET,QAASE,IAAwBpF,GAC/B,MAAO,MAAQA,EAAS,IAAMA,EAAS,IAAMA,EAAS,YAAc,GAAKA,EAAS,IAAMA,EAAS,IAAMA,EAAS,YAAc,EAAIA,EAAS,IAe7I,QAASsF,IAAyB5uB,EAAGgO,GACnCoV,IAAqBpjB,EACrBqjB,IAAqBrV,IACnBsV,GAEJ,QAASuL,MAMP,QAASxN,GAAUrhB,EAAGgO,GACpB,GAAI2d,GAAK3rB,EAAI0jB,EAAIkI,EAAK5d,EAAIwV,EAAIxf,EAAIgL,KAAKyC,KAAKka,EAAKA,EAAKC,EAAKA,EAC3DhI,KAAqB5f,GAAK0f,EAAK1jB,GAAK,EACpC6jB,IAAqB7f,GAAKwf,EAAKxV,GAAK,EACpC8V,IAAqB9f,EACrB4qB,GAAyBlL,EAAK1jB,EAAGwjB,EAAKxV,GAVxC,GAAI0V,GAAIF,CACRsL,IAAoB7hB,MAAQ,SAASjN,EAAGgO,GACtC8gB,GAAoB7hB,MAAQoU,EAC5BuN,GAAyBlL,EAAK1jB,EAAGwjB,EAAKxV,IAU1C,QAAS+gB,MACPD,GAAoB7hB,MAAQ2hB,GAE9B,QAASI,MAMP,QAAS3N,GAAUrhB,EAAGgO,GACpB,GAAI2d,GAAK3rB,EAAI0jB,EAAIkI,EAAK5d,EAAIwV,EAAIxf,EAAIgL,KAAKyC,KAAKka,EAAKA,EAAKC,EAAKA,EAC3DhI,KAAqB5f,GAAK0f,EAAK1jB,GAAK,EACpC6jB,IAAqB7f,GAAKwf,EAAKxV,GAAK,EACpC8V,IAAqB9f,EACrBA,EAAIwf,EAAKxjB,EAAI0jB,EAAK1V,EAClBqW,IAAqBrgB,GAAK0f,EAAK1jB,GAC/BskB,IAAqBtgB,GAAKwf,EAAKxV,GAC/BuW,IAAyB,EAAJvgB,EACrB4qB,GAAyBlL,EAAK1jB,EAAGwjB,EAAKxV,GAdxC,GAAI6f,GAAKC,EAAKpK,EAAIF,CAClBsL,IAAoB7hB,MAAQ,SAASjN,EAAGgO,GACtC8gB,GAAoB7hB,MAAQoU,EAC5BuN,GAAyBf,EAAMnK,EAAK1jB,EAAG8tB,EAAMtK,EAAKxV,IAapD8gB,GAAoB9N,QAAU,WAC5BK,EAAUwM,EAAKC,IAGnB,QAASmB,IAAmBC,GAqB1B,QAASjiB,GAAMjN,EAAGgO,GAChBkhB,EAAQC,OAAOnvB,EAAI2uB,EAAa3gB,GAChCkhB,EAAQhG,IAAIlpB,EAAGgO,EAAG2gB,EAAa,EAAG1F,IAEpC,QAASsF,GAAevuB,EAAGgO,GACzBkhB,EAAQC,OAAOnvB,EAAGgO,GAClBwgB,EAAOvhB,MAAQmZ,EAEjB,QAASA,GAAUpmB,EAAGgO,GACpBkhB,EAAQE,OAAOpvB,EAAGgO,GAEpB,QAASgT,KACPwN,EAAOvhB,MAAQA,EAEjB,QAASwhB,KACPS,EAAQG,YAnCV,GAAIV,GAAc,IACdH,GACFvhB,MAAOA,EACP8T,UAAW,WACTyN,EAAOvhB,MAAQshB,GAEjBvN,QAASA,EACTE,aAAc,WACZsN,EAAOxN,QAAUyN,GAEnBtN,WAAY,WACVqN,EAAOxN,QAAUA,EACjBwN,EAAOvhB,MAAQA,GAEjB0hB,YAAa,SAAShtB,GAEpB,MADAgtB,GAAchtB,EACP6sB,GAETrb,OAAQzP,EAmBV,OAAO8qB,GAET,QAASc,IAAgBC,GAEvB,QAASC,GAAShB,GAChB,OAAQiB,EAAWC,EAAoBC,GAAcnB,GAEvD,QAASmB,GAAanB,GACpB,MAAOoB,IAAsBpB,EAAQ,SAASxuB,EAAGgO,GAC/ChO,EAAIuvB,EAAQvvB,EAAGgO,GACfwgB,EAAOvhB,MAAMjN,EAAE,GAAIA,EAAE,MAGzB,QAAS0vB,GAAkBlB,GAezB,QAASvhB,GAAMjN,EAAGgO,GAChBhO,EAAIuvB,EAAQvvB,EAAGgO,GACfwgB,EAAOvhB,MAAMjN,EAAE,GAAIA,EAAE,IAEvB,QAAS+gB,KACP2C,MACA8L,EAASviB,MAAQof,EACjBmC,EAAOzN,YAET,QAASsL,GAAU/K,EAAGC,GACpB,GAAIzZ,GAAIua,IAAmBf,EAAGC,IAAMrL,EAAIqZ,EAAQjO,EAAGC,EACnDsO,GAAenM,EAAIF,EAAI/B,EAAIqO,EAAIC,EAAItG,EAAI/F,EAAKxN,EAAE,GAAIsN,EAAKtN,EAAE,GAAIuL,EAAKH,EAAGwO,EAAKhoB,EAAE,GAAIioB,EAAKjoB,EAAE,GAAI2hB,EAAK3hB,EAAE,GAAI2nB,EAAUjB,GAChHA,EAAOvhB,MAAMyW,EAAIF,GAEnB,QAASxC,KACPwO,EAASviB,MAAQA,EACjBuhB,EAAOxN,UAET,QAASyF,KACP1F,IACAyO,EAASviB,MAAQ+iB,EACjBR,EAASxO,QAAU0F,EAErB,QAASsJ,GAAU1O,EAAGC,GACpB8K,EAAUnK,EAAMZ,EAAGa,EAAMZ,GAAIsM,EAAMnK,EAAIoK,EAAMtK,EAAIyM,EAAMH,EAAII,EAAMH,EAAII,EAAM1G,EAC3E+F,EAASviB,MAAQof,EAEnB,QAAS3F,KACPmJ,EAAenM,EAAIF,EAAI/B,EAAIqO,EAAIC,EAAItG,EAAIoE,EAAKC,EAAK5L,EAAK+N,EAAKC,EAAKC,EAAKV,EAAUjB,GAC/EgB,EAASxO,QAAUA,EACnBA,IA5CF,GAAIkB,GAAKC,EAAK0L,EAAKC,EAAKmC,EAAKC,EAAKC,EAAK1O,EAAIiC,EAAIF,EAAIsM,EAAIC,EAAItG,EACvD+F,GACFviB,MAAOA,EACP8T,UAAWA,EACXC,QAASA,EACTE,aAAc;AACZsN,EAAOtN,eACPsO,EAASzO,UAAY0F,GAEvBtF,WAAY,WACVqN,EAAOrN,aACPqO,EAASzO,UAAYA,GAmCzB,OAAOyO,GAET,QAASK,GAAenM,EAAIF,EAAI/B,EAAIqO,EAAIC,EAAItG,EAAI4B,EAAIC,EAAIxD,EAAIsE,EAAIgE,EAAI1F,EAAI2F,EAAO7B,GAC7E,GAAI7C,GAAKN,EAAK3H,EAAIkI,EAAKN,EAAK9H,EAAI8M,EAAK3E,EAAKA,EAAKC,EAAKA,CACpD,IAAI0E,EAAK,EAAIC,GAAMF,IAAS,CAC1B,GAAIxwB,GAAIiwB,EAAK1D,EAAItsB,EAAIiwB,EAAKK,EAAItoB,EAAI2hB,EAAKiB,EAAItgB,EAAI4E,KAAKyC,KAAK5R,EAAIA,EAAIC,EAAIA,EAAIgI,EAAIA,GAAI0oB,EAAKxhB,KAAKI,KAAKtH,GAAKsC,GAAIqmB,EAAKla,GAAIA,GAAIzO,GAAK,GAAKkb,IAAKzM,GAAIkL,EAAKqG,GAAM9E,IAAKvB,EAAKqG,GAAM,EAAI9Y,KAAKuC,MAAMzR,EAAGD,GAAIqW,EAAIqZ,EAAQkB,EAAID,GAAKE,EAAKxa,EAAE,GAAIya,EAAKza,EAAE,GAAI0a,EAAMF,EAAKhN,EAAImN,EAAMF,EAAKnN,EAAIsN,EAAKlF,EAAKgF,EAAMjF,EAAKkF,GACpRC,EAAKA,EAAKR,EAAKC,GAAMha,IAAKoV,EAAKiF,EAAMhF,EAAKiF,GAAOP,EAAK,IAAM,IAAoCS,EAA9BjB,EAAK1D,EAAK2D,EAAKK,EAAK3G,EAAKiB,KAC7FmF,EAAenM,EAAIF,EAAI/B,EAAIqO,EAAIC,EAAItG,EAAIiH,EAAIC,EAAIF,EAAI5wB,GAAKuK,EAAGtK,GAAKsK,EAAGtC,EAAGuoB,EAAO7B,GAC7EA,EAAOvhB,MAAMyjB,EAAIC,GACjBd,EAAea,EAAIC,EAAIF,EAAI5wB,EAAGC,EAAGgI,EAAGujB,EAAIC,EAAIxD,EAAIsE,EAAIgE,EAAI1F,EAAI2F,EAAO7B,KAlEzE,GAAI+B,GAAK,GAAIQ,EAAiB/hB,KAAK+B,IAAI,GAAKC,IAAaye,EAAW,EA2EpE,OALAD,GAASxX,UAAY,SAASrW,GAC5B,MAAKnB,WAAUC,QACfgvB,GAAYc,EAAK5uB,EAAIA,GAAK,GAAK,GACxB6tB,GAFuBxgB,KAAKyC,KAAK8e,IAInCf,EAiDT,QAASwB,IAAyBzB,GAChC,GAAIC,GAAWF,GAAgB,SAAStvB,EAAGgO,GACzC,MAAOuhB,IAAUvvB,EAAIwR,GAAYxD,EAAIwD,MAEvC,OAAO,UAASgd,GACd,MAAOyC,IAAyBzB,EAAShB,KAY7C,QAAS0C,IAAiB1C,GACxB9sB,KAAK8sB,OAASA,EAsBhB,QAASoB,IAAsBpB,EAAQvhB,GACrC,OACEA,MAAOA,EACPsa,OAAQ,WACNiH,EAAOjH,UAETxG,UAAW,WACTyN,EAAOzN,aAETC,QAAS,WACPwN,EAAOxN,WAETE,aAAc,WACZsN,EAAOtN,gBAETC,WAAY,WACVqN,EAAOrN,eAMb,QAASgQ,IAAkB5B,GACzB,MAAOpC,IAAyB,WAC9B,MAAOoC,OAGX,QAASpC,IAAyBD,GAKhC,QAASkE,GAAWnkB,GAElB,MADAA,GAAQokB,EAAcpkB,EAAM,GAAK+D,GAAY/D,EAAM,GAAK+D,KAC/C/D,EAAM,GAAKlM,EAAIuwB,EAAIC,EAAKtkB,EAAM,GAAKlM,GAE9C,QAAS2jB,GAAOzX,GAEd,MADAA,GAAQokB,EAAc3M,QAAQzX,EAAM,GAAKqkB,GAAMvwB,GAAIwwB,EAAKtkB,EAAM,IAAMlM,GAC7DkM,IAAWA,EAAM,GAAKuE,GAAYvE,EAAM,GAAKuE,IA4CtD,QAASsX,KACPuI,EAAgB7M,GAAe2B,EAASqL,GAAgBxG,EAAIyG,EAAIC,GAAKnC,EACrE,IAAIoC,GAASpC,EAAQjO,EAAGC,EAGxB,OAFA+P,GAAKtxB,EAAI2xB,EAAO,GAAK5wB,EACrBwwB,EAAKvjB,EAAI2jB,EAAO,GAAK5wB,EACd6wB,IAET,QAASA,KAEP,MADIpD,KAAQA,EAAOqD,OAAQ,EAAOrD,EAAS,MACpC4C,EA/DT,GAAI7B,GAASpJ,EAAQkL,EAGgDC,EAAIC,EAAoG/C,EAHzIsD,EAAkBxC,GAAgB,SAAStvB,EAAGgO,GAEhF,MADAhO,GAAIuvB,EAAQvvB,EAAGgO,IACNhO,EAAE,GAAKe,EAAIuwB,EAAIC,EAAKvxB,EAAE,GAAKe,KAClCA,EAAI,IAAKf,EAAI,IAAKgO,EAAI,IAAKsT,EAAI,EAAGC,EAAI,EAAGyJ,EAAK,EAAGyG,EAAK,EAAGC,EAAK,EAAWK,EAAUC,GAAyBC,EAAWtvB,EAAauvB,EAAY,KAAMC,EAAa,IA8DvK,OArDAf,GAAW5C,OAAS,SAAS4D,GAI3B,MAHI5D,KAAQA,EAAOqD,OAAQ,GAC3BrD,EAASyC,GAAyBc,EAAQ5L,EAAQ2L,EAAgBG,EAASG,MAC3E5D,EAAOqD,OAAQ,EACRrD,GAET4C,EAAWc,UAAY,SAASvwB,GAC9B,MAAKnB,WAAUC,QACfsxB,EAAe,MAALpwB,GAAauwB,EAAYvwB,EAAGqwB,IAA2B3I,IAAmB6I,GAAavwB,GAAKqP,IAC/F4gB,KAFuBM,GAIhCd,EAAWe,WAAa,SAASxwB,GAC/B,MAAKnB,WAAUC,QACf0xB,EAAaxwB,EACbswB,EAAWtwB,EAAIkqB,GAAkBlqB,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAIA,EAAE,GAAG,IAAMgB,EAChEivB,KAHuBO,GAKhCf,EAAW5a,MAAQ,SAAS7U,GAC1B,MAAKnB,WAAUC,QACfM,GAAKY,EACEmnB,KAFuB/nB,GAIhCqwB,EAAWiB,UAAY,SAAS1wB,GAC9B,MAAKnB,WAAUC,QACfT,GAAK2B,EAAE,GACPqM,GAAKrM,EAAE,GACAmnB,MAHyB9oB,EAAGgO,IAKrCojB,EAAWO,OAAS,SAAShwB,GAC3B,MAAKnB,WAAUC,QACf6gB,EAAI3f,EAAE,GAAK,IAAMqP,GACjBuQ,EAAI5f,EAAE,GAAK,IAAMqP,GACV8X,MAHyBxH,EAAI9P,GAAY+P,EAAI/P,KAKtD4f,EAAWjL,OAAS,SAASxkB,GAC3B,MAAKnB,WAAUC,QACfuqB,EAAKrpB,EAAE,GAAK,IAAMqP,GAClBygB,EAAK9vB,EAAE,GAAK,IAAMqP,GAClB0gB,EAAK/vB,EAAElB,OAAS,EAAIkB,EAAE,GAAK,IAAMqP,GAAa,EACvC8X,MAJyBkC,EAAKxZ,GAAYigB,EAAKjgB,GAAYkgB,EAAKlgB,KAMzE7M,GAAGiQ,OAAOwc,EAAYU,EAAiB,aAYhC,WAGL,MAFAvC,GAAUrC,EAAUlqB,MAAMtB,KAAMlB,WAChC4wB,EAAW1M,OAAS6K,EAAQ7K,QAAUA,EAC/BoE,KAGX,QAASmI,IAAyBzC,GAChC,MAAOoB,IAAsBpB,EAAQ,SAASxuB,EAAGgO,GAC/CwgB,EAAOvhB,MAAMjN,EAAIgR,GAAYhD,EAAIgD,MAGrC,QAASshB,IAAuBhR,EAAGC,GACjC,OAASD,EAAGC,GAiBd,QAASgR,IAAwBjR,EAAGC,GAClC,OAASD,EAAIvS,GAAIuS,EAAI2H,IAASla,GAALuS,EAASA,EAAI2H,GAAI3H,EAAGC,GAG/C,QAASiQ,IAAgBxG,EAAIyG,EAAIC,GAC/B,MAAO1G,GAAKyG,GAAMC,EAAKlN,GAAegO,GAAiBxH,GAAKyH,GAAkBhB,EAAIC,IAAOc,GAAiBxH,GAAMyG,GAAMC,EAAKe,GAAkBhB,EAAIC,GAAMa,GAEzJ,QAASG,IAAwB1H,GAC/B,MAAO,UAAS1J,EAAGC,GACjB,MAAOD,IAAK0J,GAAM1J,EAAIvS,GAAIuS,EAAI2H,IAASla,GAALuS,EAASA,EAAI2H,GAAI3H,EAAGC,IAG1D,QAASiR,IAAiBxH,GACxB,GAAI2H,GAAWD,GAAwB1H,EAEvC,OADA2H,GAASjO,OAASgO,IAAyB1H,GACpC2H,EAET,QAASF,IAAkBhB,EAAIC,GAE7B,QAASiB,GAASrR,EAAGC,GACnB,GAAIK,GAAO5S,KAAK+B,IAAIwQ,GAAIvhB,EAAIgP,KAAK+B,IAAIuQ,GAAKM,EAAM5T,EAAIgB,KAAKU,IAAI4R,GAAKM,EAAM5d,EAAIgL,KAAKU,IAAI6R,GAAIxgB,EAAIiD,EAAI4uB,EAAQ5yB,EAAI6yB,CAC7G,QAAS7jB,KAAKuC,MAAMvD,EAAI8kB,EAAQ/xB,EAAIgyB,EAAO/yB,EAAI4yB,EAAQ5uB,EAAI6uB,GAAQ3jB,GAAQnO,EAAI+xB,EAAQ9kB,EAAI+kB,IAH7F,GAAIH,GAAQ5jB,KAAK+B,IAAI0gB,GAAKoB,EAAQ7jB,KAAKU,IAAI+hB,GAAKqB,EAAQ9jB,KAAK+B,IAAI2gB,GAAKqB,EAAQ/jB,KAAKU,IAAIgiB,EASvF,OAJAiB,GAASjO,OAAS,SAASpD,EAAGC,GAC5B,GAAIK,GAAO5S,KAAK+B,IAAIwQ,GAAIvhB,EAAIgP,KAAK+B,IAAIuQ,GAAKM,EAAM5T,EAAIgB,KAAKU,IAAI4R,GAAKM,EAAM5d,EAAIgL,KAAKU,IAAI6R,GAAIxgB,EAAIiD,EAAI8uB,EAAQ9kB,EAAI+kB,CAC7G,QAAS/jB,KAAKuC,MAAMvD,EAAI8kB,EAAQ9uB,EAAI+uB,EAAO/yB,EAAI4yB,EAAQ7xB,EAAI8xB,GAAQ3jB,GAAQnO,EAAI6xB,EAAQ5yB,EAAI6yB,KAEtFF,EAkCT,QAASxH,IAAyB7B,EAAQtR,GACxC,GAAIwR,GAAKxa,KAAK+B,IAAIuY,GAAS0J,EAAKhkB,KAAKU,IAAI4Z,EACzC,OAAO,UAAShB,EAAMC,EAAIC,EAAWpkB,GACnC,GAAI+U,GAAOqP,EAAYxQ,CACX,OAARsQ,GACFA,EAAO2K,GAAmBzJ,EAAIlB,GAC9BC,EAAK0K,GAAmBzJ,EAAIjB,IACxBC,EAAY,EAAWD,EAAPD,EAAYA,EAAOC,KAAID,GAAQE,EAAYS,MAE/DX,EAAOgB,EAASd,EAAYS,GAC5BV,EAAKe,EAAS,GAAKnQ,EAErB,KAAK,GAAIlM,GAAO2I,EAAI0S,EAAME,EAAY,EAAI5S,EAAI2S,EAASA,EAAJ3S,EAAQA,GAAKuD,EAC9D/U,EAAS6I,OAAOA,EAAQ4V,IAAmB2G,GAAKwJ,EAAKhkB,KAAK+B,IAAI6E,IAAKod,EAAKhkB,KAAKU,IAAIkG,MAAO,GAAI3I,EAAM,KAIxG,QAASgmB,IAAmBzJ,EAAIvc,GAC9B,GAAIpN,GAAIwiB,GAAiBpV,EACzBpN,GAAE,IAAM2pB,EACR5G,GAA0B/iB,EAC1B,IAAIqzB,GAAQpkB,IAASjP,EAAE,GACvB,UAAUA,EAAE,GAAK,GAAKqzB,EAAQA,GAAS,EAAIlkB,KAAKmkB,GAAKnQ,KAAM,EAAIhU,KAAKmkB,IAgFtE,QAASC,IAAkB5P,EAAI8H,EAAIM,GACjC,GAAI5d,GAAIrJ,GAAG+U,MAAM8J,EAAI8H,EAAKtI,GAAG4I,GAAIrnB,OAAO+mB,EACxC,OAAO,UAAStrB,GACd,MAAOgO,GAAErG,IAAI,SAASqG,GACpB,OAAShO,EAAGgO,MAIlB,QAASqlB,IAAkB3P,EAAI2H,EAAIM,GACjC,GAAI3rB,GAAI2E,GAAG+U,MAAMgK,EAAI2H,EAAKrI,GAAG2I,GAAIpnB,OAAO8mB,EACxC,OAAO,UAASrd,GACd,MAAOhO,GAAE2H,IAAI,SAAS3H,GACpB,OAASA,EAAGgO,MAIlB,QAASslB,IAAUzyB,GACjB,MAAOA,GAAEiC,OAEX,QAASywB,IAAU1yB,GACjB,MAAOA,GAAEgC,OA+BX,QAAS2wB,IAAmB9P,EAAIF,EAAI6H,EAAIC,GACtC,GAAImI,GAAMzkB,KAAK+B,IAAIyS,GAAKkQ,EAAM1kB,KAAKU,IAAI8T,GAAKmQ,EAAM3kB,KAAK+B,IAAIua,GAAKsI,EAAM5kB,KAAKU,IAAI4b,GAAKuI,EAAMJ,EAAMzkB,KAAK+B,IAAI2S,GAAKoQ,EAAML,EAAMzkB,KAAKU,IAAIgU,GAAKqQ,EAAMJ,EAAM3kB,KAAK+B,IAAIsa,GAAK2I,EAAML,EAAM3kB,KAAKU,IAAI2b,GAAKxqB,EAAI,EAAImO,KAAKI,KAAKJ,KAAKyC,KAAKhC,GAAY6b,EAAK9H,GAAMiQ,EAAME,EAAMlkB,GAAY4b,EAAK3H,KAAO3iB,EAAI,EAAIiO,KAAKU,IAAI7O,GAChSkkB,EAAclkB,EAAI,SAAS+U,GAC7B,GAAIgI,GAAI5O,KAAKU,IAAIkG,GAAK/U,GAAKE,EAAG2c,EAAI1O,KAAKU,IAAI7O,EAAI+U,GAAK7U,EAAGf,EAAI0d,EAAImW,EAAMjW,EAAImW,EAAK/lB,EAAI0P,EAAIoW,EAAMlW,EAAIoW,EAAKhwB,EAAI0Z,EAAIgW,EAAM9V,EAAIgW,CACvH,QAAS5kB,KAAKuC,MAAMvD,EAAGhO,GAAKwR,GAAYxC,KAAKuC,MAAMvN,EAAGgL,KAAKyC,KAAKzR,EAAIA,EAAIgO,EAAIA,IAAMwD,KAChF,WACF,OAASkS,EAAKlS,GAAYgS,EAAKhS,IAGjC,OADAuT,GAAYkP,SAAWpzB,EAChBkkB,EAgBT,QAASmP,MASP,QAAS7S,GAAUC,EAAGC,GACpB,GAAIM,GAAO7S,KAAKU,IAAI6R,GAAKvQ,IAAa4Q,EAAO5S,KAAK+B,IAAIwQ,GAAI3L,EAAIW,IAAK+K,GAAKtQ,IAAcyQ,GAAK0S,EAAQnlB,KAAK+B,IAAI6E,EAC5Gwe,KAAoBplB,KAAKuC,MAAMvC,KAAKyC,MAAMmE,EAAIgM,EAAO5S,KAAKU,IAAIkG,IAAMA,GAAKA,EAAIoM,EAAQH,EAAOC,EAAQF,EAAOuS,GAASve,GAAIkM,EAAQD,EAAOG,EAAQJ,EAAOuS,GACtJ1S,EAAKH,EAAGQ,EAAQD,EAAMG,EAAQJ,EAXhC,GAAIH,GAAIK,EAAOE,CACfqS,IAAcpnB,MAAQ,SAASqU,EAAGC,GAChCE,EAAKH,EAAItQ,GAAY8Q,EAAQ9S,KAAKU,IAAI6R,GAAKvQ,IAAagR,EAAQhT,KAAK+B,IAAIwQ,GACzE8S,GAAcpnB,MAAQoU,GAExBgT,GAAcrT,QAAU,WACtBqT,GAAcpnB,MAAQonB,GAAcrT,QAAUtd,GAQlD,QAAS4wB,IAAiB9d,EAAO0c,GAC/B,QAASqB,GAAUjT,EAAGC,GACpB,GAAIiT,GAAOxlB,KAAK+B,IAAIuQ,GAAIM,EAAO5S,KAAK+B,IAAIwQ,GAAIxgB,EAAIyV,EAAMge,EAAO5S,EAC7D,QAAS7gB,EAAI6gB,EAAO5S,KAAKU,IAAI4R,GAAIvgB,EAAIiO,KAAKU,IAAI6R,IAMhD,MAJAgT,GAAU7P,OAAS,SAAS1kB,EAAGgO,GAC7B,GAAIuf,GAAIve,KAAKyC,KAAKzR,EAAIA,EAAIgO,EAAIA,GAAIlG,EAAIorB,EAAM3F,GAAIkH,EAAOzlB,KAAKU,IAAI5H,GAAI4sB,EAAO1lB,KAAK+B,IAAIjJ,EACpF,QAASkH,KAAKuC,MAAMvR,EAAIy0B,EAAMlH,EAAImH,GAAO1lB,KAAKI,KAAKme,GAAKvf,EAAIymB,EAAOlH,KAE9DgH,EAiBT,QAASI,IAAsB/M,EAAIG,GAKjC,QAASuF,GAAQhM,EAAGC,GACdqT,EAAI,GACGzlB,GAAQ6T,GAAbzB,IAAgBA,GAAKpS,GAAQ6T,IAE7BzB,EAAIpS,GAAQ6T,KAAGzB,EAAIpS,GAAQ6T,GAEjC,IAAIuK,GAAIqH,EAAI5lB,KAAK2C,IAAIiE,EAAE2L,GAAIhe,EAC3B,QAASgqB,EAAIve,KAAKU,IAAInM,EAAI+d,GAAIsT,EAAIrH,EAAIve,KAAK+B,IAAIxN,EAAI+d,IAXrD,GAAIU,GAAQhT,KAAK+B,IAAI6W,GAAKhS,EAAI,SAAS2L,GACrC,MAAOvS,MAAK6lB,IAAI9lB,GAAI,EAAIwS,EAAI,IAC3Bhe,EAAIqkB,IAAOG,EAAK/Y,KAAKU,IAAIkY,GAAM5Y,KAAKoH,IAAI4L,EAAQhT,KAAK+B,IAAIgX,IAAO/Y,KAAKoH,IAAIR,EAAEmS,GAAMnS,EAAEgS,IAAMgN,EAAI5S,EAAQhT,KAAK2C,IAAIiE,EAAEgS,GAAKrkB,GAAKA,CAC7H,OAAKA,IAUL+pB,EAAQ5I,OAAS,SAAS1kB,EAAGgO,GAC3B,GAAI0f,GAAOkH,EAAI5mB,EAAGuf,EAAI3e,EAAOrL,GAAKyL,KAAKyC,KAAKzR,EAAIA,EAAI0tB,EAAOA,EAC3D,QAAS1e,KAAKuC,MAAMvR,EAAG0tB,GAAQnqB,EAAG,EAAIyL,KAAKoZ,KAAKpZ,KAAK2C,IAAIijB,EAAIrH,EAAG,EAAIhqB,IAAM4L,KAErEme,GAdQwH,GAmBjB,QAASC,IAAwBnN,EAAIG,GAGnC,QAASuF,GAAQhM,EAAGC,GAClB,GAAIgM,GAAIyH,EAAIzT,CACZ,QAASgM,EAAIve,KAAKU,IAAInM,EAAI+d,GAAI0T,EAAIzH,EAAIve,KAAK+B,IAAIxN,EAAI+d,IAJrD,GAAIU,GAAQhT,KAAK+B,IAAI6W,GAAKrkB,EAAIqkB,IAAOG,EAAK/Y,KAAKU,IAAIkY,IAAO5F,EAAQhT,KAAK+B,IAAIgX,KAAQA,EAAKH,GAAKoN,EAAIhT,EAAQze,EAAIqkB,CAC7G,OAAIrR,IAAIhT,GAAKyf,GAAUsP,IAKvBhF,EAAQ5I,OAAS,SAAS1kB,EAAGgO,GAC3B,GAAI0f,GAAOsH,EAAIhnB,CACf,QAASgB,KAAKuC,MAAMvR,EAAG0tB,GAAQnqB,EAAGyxB,EAAIpmB,EAAOrL,GAAKyL,KAAKyC,KAAKzR,EAAIA,EAAI0tB,EAAOA,KAEtEJ,GAWT,QAASwH,IAAgBxT,EAAGC,GAC1B,OAASD,EAAGtS,KAAKoH,IAAIpH,KAAK6lB,IAAI9lB,GAAI,EAAIwS,EAAI,KAK5C,QAAS0T,IAA0B1F,GACjC,GAAyG2F,GAArG9qB,EAAI+mB,GAAkB5B,GAAU/Y,EAAQpM,EAAEoM,MAAO6b,EAAYjoB,EAAEioB,UAAWF,EAAa/nB,EAAE+nB,UAqB7F,OApBA/nB,GAAEoM,MAAQ,WACR,GAAIvG,GAAIuG,EAAMxT,MAAMoH,EAAG5J,UACvB,OAAOyP,KAAM7F,EAAI8qB,EAAW9qB,EAAE+nB,WAAW,MAAQ/nB,EAAI6F,GAEvD7F,EAAEioB,UAAY,WACZ,GAAIpiB,GAAIoiB,EAAUrvB,MAAMoH,EAAG5J,UAC3B,OAAOyP,KAAM7F,EAAI8qB,EAAW9qB,EAAE+nB,WAAW,MAAQ/nB,EAAI6F,GAEvD7F,EAAE+nB,WAAa,SAASxwB,GACtB,GAAIsO,GAAIkiB,EAAWnvB,MAAMoH,EAAG5J,UAC5B,IAAIyP,IAAM7F,GACR,GAAI8qB,EAAgB,MAALvzB,EAAW,CACxB,GAAIZ,GAAIgO,GAAIyH,IAASZ,EAAIyc,GACzBF,KAAevc,EAAE,GAAK7U,EAAG6U,EAAE,GAAK7U,IAAO6U,EAAE,GAAK7U,EAAG6U,EAAE,GAAK7U,UAEjDm0B,KACTjlB,EAAI,KAEN,OAAOA,IAEF7F,EAAE+nB,WAAW,MAmBtB,QAASgD,IAA0B7T,EAAGC,GACpC,OAASvS,KAAKoH,IAAIpH,KAAK6lB,IAAI9lB,GAAI,EAAIwS,EAAI,KAAMD,GAiB/C,QAAS8T,IAAev0B,GACtB,MAAOA,GAAE,GAEX,QAASw0B,IAAex0B,GACtB,MAAOA,GAAE,GA2BX,QAASy0B,IAAkB7P,GAEzB,IAAK,GADDliB,GAAIkiB,EAAOhlB,OAAQ80B,GAAS,EAAG,GAAKC,EAAK,EACpClyB,EAAI,EAAOC,EAAJD,EAAOA,IAAK,CAC1B,KAAOkyB,EAAK,GAAK3mB,EAAW4W,EAAO8P,EAAKC,EAAK,IAAK/P,EAAO8P,EAAKC,EAAK,IAAK/P,EAAOniB,KAAO,KAAKkyB,CAC3FD,GAAKC,KAAQlyB,EAEf,MAAOiyB,GAAKtzB,MAAM,EAAGuzB,GAEvB,QAASC,IAAkB51B,EAAGC,GAC5B,MAAOD,GAAE,GAAKC,EAAE,IAAMD,EAAE,GAAKC,EAAE,GAqDjC,QAAS41B,IAAsBxf,EAAGrW,EAAGC,GACnC,OAAQA,EAAE,GAAKD,EAAE,KAAOqW,EAAE,GAAKrW,EAAE,KAAOC,EAAE,GAAKD,EAAE,KAAOqW,EAAE,GAAKrW,EAAE,IAEnE,QAAS81B,IAAyB7tB,EAAGjH,EAAGhB,EAAGC,GACzC,GAAIurB,GAAKvjB,EAAE,GAAI8tB,EAAK/1B,EAAE,GAAIg2B,EAAMh1B,EAAE,GAAKwqB,EAAIyK,EAAMh2B,EAAE,GAAK81B,EAAItK,EAAKxjB,EAAE,GAAIiuB,EAAKl2B,EAAE,GAAIm2B,EAAMn1B,EAAE,GAAKyqB,EAAI2K,EAAMn2B,EAAE,GAAKi2B,EAAIG,GAAMJ,GAAOxK,EAAKyK,GAAME,GAAO5K,EAAKuK,KAAQK,EAAMJ,EAAMC,EAAME,EAClL,QAAS3K,EAAK6K,EAAKL,EAAKvK,EAAK4K,EAAKF,GAEpC,QAASG,IAAsBvV,GAC7B,GAAI/gB,GAAI+gB,EAAY,GAAI9gB,EAAI8gB,EAAYA,EAAYngB,OAAS,EAC7D,SAASZ,EAAE,GAAKC,EAAE,IAAMD,EAAE,GAAKC,EAAE,IAGnC,QAASs2B,MACPC,GAA4B30B,MAC5BA,KAAK40B,KAAO50B,KAAK60B,KAAO70B,KAAK80B,OAAS,KAExC,QAASC,IAA2BF,GAClC,GAAIG,GAAQC,GAAyB7P,OAAS,GAAIsP,GAElD,OADAM,GAAMH,KAAOA,EACNG,EAET,QAASE,IAA2BF,GAClCG,GAA4BH,GAC5BI,GAAuBtyB,OAAOkyB,GAC9BC,GAAyBr0B,KAAKo0B,GAC9BL,GAA4BK,GAE9B,QAASK,IAA2BL,GAClC,GAAIF,GAASE,EAAMF,OAAQx2B,EAAIw2B,EAAOx2B,EAAGgO,EAAIwoB,EAAOrS,GAAI6S,GACtDh3B,EAAGA,EACHgO,EAAGA,GACFipB,EAAWP,EAAMQ,EAAGC,EAAOT,EAAMU,EAAGC,GAAiBX,EACxDE,IAA2BF,EAE3B,KADA,GAAIY,GAAOL,EACJK,EAAKd,QAAUjgB,GAAIvW,EAAIs3B,EAAKd,OAAOx2B,GAAKgjB,IAAKzM,GAAIvI,EAAIspB,EAAKd,OAAOrS,IAAMnB,IAC5EiU,EAAWK,EAAKJ,EAChBG,EAAaE,QAAQD,GACrBV,GAA2BU,GAC3BA,EAAOL,CAETI,GAAaE,QAAQD,GACrBT,GAA4BS,EAE5B,KADA,GAAIE,GAAOL,EACJK,EAAKhB,QAAUjgB,GAAIvW,EAAIw3B,EAAKhB,OAAOx2B,GAAKgjB,IAAKzM,GAAIvI,EAAIwpB,EAAKhB,OAAOrS,IAAMnB,IAC5EmU,EAAOK,EAAKJ,EACZC,EAAa/0B,KAAKk1B,GAClBZ,GAA2BY,GAC3BA,EAAOL,CAETE,GAAa/0B,KAAKk1B,GAClBX,GAA4BW,EAC5B,IAAiCC,GAA7BC,EAAQL,EAAa52B,MACzB,KAAKg3B,EAAO,EAAUC,EAAPD,IAAgBA,EAC7BD,EAAOH,EAAaI,GACpBH,EAAOD,EAAaI,EAAO,GAC3BE,GAA0BH,EAAKlB,KAAMgB,EAAKf,KAAMiB,EAAKjB,KAAMS,EAE7DM,GAAOD,EAAa,GACpBG,EAAOH,EAAaK,EAAQ,GAC5BF,EAAKlB,KAAOsB,GAA0BN,EAAKf,KAAMiB,EAAKjB,KAAM,KAAMS,GAClEa,GAA4BP,GAC5BO,GAA4BL,GAE9B,QAASM,IAAwBvB,GAE/B,IADA,GAAoCe,GAAME,EAAMO,EAAKC,EAAjDh4B,EAAIu2B,EAAKv2B,EAAGi4B,EAAY1B,EAAKvoB,EAAyB1O,EAAOw3B,GAAuBn1B,EACjFrC,GAEL,GADAy4B,EAAMG,GAA8B54B,EAAM24B,GAAaj4B,EACnD+3B,EAAM/U,GAAG1jB,EAAOA,EAAKsb,MAAQ,CAE/B,GADAod,EAAMh4B,EAAIm4B,GAA+B74B,EAAM24B,KAC3CD,EAAMhV,IAMH,CACD+U,GAAO/U,IACTsU,EAAOh4B,EAAK43B,EACZM,EAAOl4B,GACE04B,GAAOhV,IAChBsU,EAAOh4B,EACPk4B,EAAOl4B,EAAK83B,GAEZE,EAAOE,EAAOl4B,CAEhB,OAfA,IAAKA,EAAK84B,EAAG,CACXd,EAAOh4B,CACP,OAEFA,EAAOA,EAAK84B,EAelB,GAAIC,GAAS5B,GAA2BF,EAExC,IADAO,GAAuBwB,OAAOhB,EAAMe,GAC/Bf,GAASE,EAAd,CACA,GAAIF,IAASE,EAOX,MANAX,IAA4BS,GAC5BE,EAAOf,GAA2Ba,EAAKf,MACvCO,GAAuBwB,OAAOD,EAAQb,GACtCa,EAAO/B,KAAOkB,EAAKlB,KAAOsB,GAA0BN,EAAKf,KAAM8B,EAAO9B,MACtEsB,GAA4BP,OAC5BO,IAA4BL,EAG9B,KAAKA,EAEH,YADAa,EAAO/B,KAAOsB,GAA0BN,EAAKf,KAAM8B,EAAO9B,MAG5DM,IAA4BS,GAC5BT,GAA4BW,EAC5B,IAAIe,GAAQjB,EAAKf,KAAMhL,EAAKgN,EAAMv4B,EAAGwrB,EAAK+M,EAAMvqB,EAAGyd,EAAK8K,EAAKv2B,EAAIurB,EAAIG,EAAK6K,EAAKvoB,EAAIwd,EAAIgN,EAAQhB,EAAKjB,KAAMrS,EAAKsU,EAAMx4B,EAAIurB,EAAIpH,EAAKqU,EAAMxqB,EAAIwd,EAAI3qB,EAAI,GAAK4qB,EAAKtH,EAAKuH,EAAKxH,GAAKuU,EAAKhN,EAAKA,EAAKC,EAAKA,EAAIgN,EAAKxU,EAAKA,EAAKC,EAAKA,EAAI6S,GAC3Nh3B,GAAImkB,EAAKsU,EAAK/M,EAAKgN,GAAM73B,EAAI0qB,EAC7Bvd,GAAIyd,EAAKiN,EAAKxU,EAAKuU,GAAM53B,EAAI2qB,EAE/BmM,IAA0BH,EAAKlB,KAAMiC,EAAOC,EAAOxB,GACnDqB,EAAO/B,KAAOsB,GAA0BW,EAAOhC,EAAM,KAAMS,GAC3DQ,EAAKlB,KAAOsB,GAA0BrB,EAAMiC,EAAO,KAAMxB,GACzDa,GAA4BP,GAC5BO,GAA4BL,IAE9B,QAASU,IAA8BhP,EAAK+O,GAC1C,GAAI1B,GAAOrN,EAAIqN,KAAMoC,EAAQpC,EAAKv2B,EAAG44B,EAAQrC,EAAKvoB,EAAG6qB,EAAOD,EAAQX,CACpE,KAAKY,EAAM,MAAOF,EAClB,IAAIrB,GAAOpO,EAAIgO,CACf,KAAKI,EAAM,YACXf,GAAOe,EAAKf,IACZ,IAAIuC,GAAQvC,EAAKv2B,EAAG+4B,EAAQxC,EAAKvoB,EAAGgrB,EAAQD,EAAQd,CACpD,KAAKe,EAAO,MAAOF,EACnB,IAAIG,GAAKH,EAAQH,EAAOO,EAAO,EAAIL,EAAO,EAAIG,EAAOl5B,EAAIm5B,EAAKD,CAC9D,OAAIE,KAAep5B,EAAIkP,KAAKyC,KAAK3R,EAAIA,EAAI,EAAIo5B,GAAQD,EAAKA,GAAM,GAAKD,GAASD,EAAQC,EAAQ,EAAIJ,EAAQC,EAAO,KAAOK,EAAOP,GACvHA,EAAQG,GAAS,EAE3B,QAASX,IAA+BjP,EAAK+O,GAC3C,GAAIT,GAAOtO,EAAIkO,CACf,IAAII,EAAM,MAAOU,IAA8BV,EAAMS,EACrD,IAAI1B,GAAOrN,EAAIqN,IACf,OAAOA,GAAKvoB,IAAMiqB,EAAY1B,EAAKv2B,MAErC,QAASm5B,IAAoB5C,GAC3B70B,KAAK60B,KAAOA,EACZ70B,KAAK03B,SAWP,QAASC,IAA0BC,GAEjC,IADA,GAAgF5I,GAAIC,EAAIiF,EAAIG,EAAwDwD,EAAMC,EAAWC,EAAWC,EAAYhU,EAAOiU,EAA/LjW,EAAK4V,EAAO,GAAG,GAAIjO,EAAKiO,EAAO,GAAG,GAAI9V,EAAK8V,EAAO,GAAG,GAAIhO,EAAKgO,EAAO,GAAG,GAAoBM,EAAQC,GAAsBC,EAAQF,EAAMn5B,OACrIq5B,KAEL,GADAP,EAAOK,EAAME,GACRP,GAASA,EAAKQ,UAInB,IAHAN,EAAYF,EAAKH,MACjBM,EAAaD,EAAUh5B,OACvB+4B,EAAY,EACOE,EAAZF,GACLG,EAAMF,EAAUD,GAAWG,MAAO/D,EAAK+D,EAAI35B,EAAG+1B,EAAK4D,EAAI3rB,EACvD0X,EAAQ+T,IAAYD,EAAYE,GAAYhU,QAASgL,EAAKhL,EAAM1lB,EAAG2wB,EAAKjL,EAAM1X,GAC1EuI,GAAIqf,EAAKlF,GAAM1N,IAAKzM,GAAIwf,EAAKpF,GAAM3N,MACrCyW,EAAUO,OAAOR,EAAW,EAAG,GAAIS,IAAwBC,GAAgCX,EAAKhD,KAAMoD,EAAKpjB,GAAIqf,EAAKlS,GAAMV,IAAKsI,EAAKyK,EAAK/S,IACvIhjB,EAAG0jB,EACH1V,EAAGuI,GAAIma,EAAKhN,GAAMV,GAAI2N,EAAKrF,GACzB/U,GAAIwf,EAAKzK,GAAMtI,IAAKqI,EAAKuK,EAAK5S,IAChChjB,EAAGuW,GAAIoa,EAAKrF,GAAMtI,GAAI0N,EAAKrF,EAC3Brd,EAAGsd,GACD/U,GAAIqf,EAAKvK,GAAMrI,IAAK+S,EAAKvS,EAAKR,IAChChjB,EAAGqrB,EACHrd,EAAGuI,GAAIma,EAAKrF,GAAMrI,GAAI2N,EAAKnN,GACzBjN,GAAIwf,EAAKvS,GAAMR,IAAK4S,EAAKlS,EAAKV,IAChChjB,EAAGuW,GAAIoa,EAAKnN,GAAMR,GAAI0N,EAAKhN,EAC3B1V,EAAGwV,GACD,MAAO+V,EAAKhD,KAAM,SACpBmD,GAKV,QAASS,IAA6Bt6B,EAAGC,GACvC,MAAOA,GAAEozB,MAAQrzB,EAAEqzB,MAErB,QAASkH,MACP/D,GAA4B30B,MAC5BA,KAAK1B,EAAI0B,KAAKsM,EAAItM,KAAKwnB,IAAMxnB,KAAK60B,KAAO70B,KAAKyiB,GAAK,KAErD,QAAS0T,IAA4B3O,GACnC,GAAIoO,GAAOpO,EAAIgO,EAAGM,EAAOtO,EAAIkO,CAC7B,IAAKE,GAASE,EAAd,CACA,GAAIe,GAAQjB,EAAKf,KAAM8D,EAAQnR,EAAIqN,KAAMiC,EAAQhB,EAAKjB,IACtD,IAAIgC,IAAUC,EAAd,CACA,GAAI/M,GAAK4O,EAAMr6B,EAAG0rB,EAAK2O,EAAMrsB,EAAGud,EAAKgN,EAAMv4B,EAAIyrB,EAAID,EAAK+M,EAAMvqB,EAAI0d,EAAIxH,EAAKsU,EAAMx4B,EAAIyrB,EAAItH,EAAKqU,EAAMxqB,EAAI0d,EACpG7qB,EAAI,GAAK0qB,EAAKpH,EAAKqH,EAAKtH,EAC5B,MAAIrjB,IAAMy5B,IAAV,CACA,GAAIC,GAAKhP,EAAKA,EAAKC,EAAKA,EAAIkN,EAAKxU,EAAKA,EAAKC,EAAKA,EAAInkB,GAAKmkB,EAAKoW,EAAK/O,EAAKkN,GAAM73B,EAAGmN,GAAKud,EAAKmN,EAAKxU,EAAKqW,GAAM15B,EAAGsjB,EAAKnW,EAAI0d,EACnH8K,EAASgE,GAA0B1T,OAAS,GAAIsT,GACpD5D,GAAOtN,IAAMA,EACbsN,EAAOD,KAAO8D,EACd7D,EAAOx2B,EAAIA,EAAIyrB,EACf+K,EAAOxoB,EAAImW,EAAKnV,KAAKyC,KAAKzR,EAAIA,EAAIgO,EAAIA,GACtCwoB,EAAOrS,GAAKA,EACZ+E,EAAIsN,OAASA,CAEb,KADA,GAAI5d,GAAS,KAAMtZ,EAAOm7B,GAAuB94B,EAC1CrC,GACL,GAAIk3B,EAAOxoB,EAAI1O,EAAK0O,GAAKwoB,EAAOxoB,IAAM1O,EAAK0O,GAAKwoB,EAAOx2B,GAAKV,EAAKU,EAAG,CAClE,IAAIV,EAAKsb,EAAuB,CAC9BhC,EAAStZ,EAAK43B,CACd,OAFU53B,EAAOA,EAAKsb,MAInB,CACL,IAAItb,EAAK84B,EAAuB,CAC9Bxf,EAAStZ,CACT,OAFUA,EAAOA,EAAK84B,EAM5BqC,GAAuBnC,OAAO1f,EAAQ4d,GACjC5d,IAAQ8hB,GAA6BlE,MAE5C,QAASK,IAA4B3N,GACnC,GAAIsN,GAAStN,EAAIsN,MACbA,KACGA,EAAOU,IAAGwD,GAA6BlE,EAAOY,GACnDqD,GAAuBj2B,OAAOgyB,GAC9BgE,GAA0Bl4B,KAAKk0B,GAC/BH,GAA4BG,GAC5BtN,EAAIsN,OAAS,MAGjB,QAASmE,IAAyBrB,GAEhC,IADA,GAAqIv0B,GAAjIq0B,EAAQwB,GAAsB3V,EAAOmG,GAAiBkO,EAAO,GAAG,GAAIA,EAAO,GAAG,GAAIA,EAAO,GAAG,GAAIA,EAAO,GAAG,IAAKh2B,EAAI81B,EAAM34B,OACtH6C,KACLyB,EAAIq0B,EAAM91B,KACLu3B,GAA2B91B,EAAGu0B,KAAYrU,EAAKlgB,IAAMwR,GAAIxR,EAAElF,EAAEG,EAAI+E,EAAEjF,EAAEE,GAAKgjB,IAAKzM,GAAIxR,EAAElF,EAAEmO,EAAIjJ,EAAEjF,EAAEkO,GAAKgV,MACvGje,EAAElF,EAAIkF,EAAEjF,EAAI,KACZs5B,EAAMY,OAAO12B,EAAG,IAItB,QAASu3B,IAA2BvE,EAAMgD,GACxC,GAAIwB,GAAKxE,EAAKx2B,CACd,IAAIg7B,EAAI,OAAO,CACf,IAA6NC,GAAIC,EAA7NC,EAAK3E,EAAKz2B,EAAG6jB,EAAK4V,EAAO,GAAG,GAAIjO,EAAKiO,EAAO,GAAG,GAAI9V,EAAK8V,EAAO,GAAG,GAAIhO,EAAKgO,EAAO,GAAG,GAAIf,EAAQjC,EAAKvyB,EAAGy0B,EAAQlC,EAAK1lB,EAAGsqB,EAAK3C,EAAMv4B,EAAGm7B,EAAK5C,EAAMvqB,EAAGotB,EAAK5C,EAAMx4B,EAAGq7B,EAAK7C,EAAMxqB,EAAGstB,GAAMJ,EAAKE,GAAM,EAAGG,GAAMJ,EAAKE,GAAM,CAC1N,IAAIA,IAAOF,EAAI,CACb,GAASzX,EAAL4X,GAAWA,GAAMjQ,EAAI,MACzB,IAAI6P,EAAKE,EAAI,CACX,GAAKH,GAGG,GAAIA,EAAGjtB,GAAKsd,EAAI,WAHf2P,IACPj7B,EAAGs7B,EACHttB,EAAGwV,EAELsX,IACE96B,EAAGs7B,EACHttB,EAAGsd,OAEA,CACL,GAAK2P,GAGG,GAAIA,EAAGjtB,EAAIwV,EAAI,WAHdyX,IACPj7B,EAAGs7B,EACHttB,EAAGsd,EAELwP,IACE96B,EAAGs7B,EACHttB,EAAGwV,QAMP,IAFAuX,GAAMG,EAAKE,IAAOC,EAAKF,GACvBH,EAAKO,EAAKR,EAAKO,EACN,GAALP,GAAWA,EAAK,EAClB,GAAIG,EAAKE,EAAI,CACX,GAAKH,GAGG,GAAIA,EAAGjtB,GAAKsd,EAAI,WAHf2P,IACPj7B,GAAIwjB,EAAKwX,GAAMD,EACf/sB,EAAGwV,EAELsX,IACE96B,GAAIsrB,EAAK0P,GAAMD,EACf/sB,EAAGsd,OAEA,CACL,GAAK2P,GAGG,GAAIA,EAAGjtB,EAAIwV,EAAI,WAHdyX,IACPj7B,GAAIsrB,EAAK0P,GAAMD,EACf/sB,EAAGsd,EAELwP,IACE96B,GAAIwjB,EAAKwX,GAAMD,EACf/sB,EAAGwV,OAIP,IAAS6X,EAALF,EAAS,CACX,GAAKF,GAGG,GAAIA,EAAGj7B,GAAKqrB,EAAI,WAHf4P,IACPj7B,EAAG0jB,EACH1V,EAAG+sB,EAAKrX,EAAKsX,EAEfF,IACE96B,EAAGqrB,EACHrd,EAAG+sB,EAAK1P,EAAK2P,OAEV,CACL,GAAKC,GAGG,GAAIA,EAAGj7B,EAAI0jB,EAAI,WAHduX,IACPj7B,EAAGqrB,EACHrd,EAAG+sB,EAAK1P,EAAK2P,EAEfF,IACE96B,EAAG0jB,EACH1V,EAAG+sB,EAAKrX,EAAKsX,GAOrB,MAFA1E,GAAKz2B,EAAIo7B,EACT3E,EAAKx2B,EAAIg7B,GACF,EAET,QAASU,IAAoBjD,EAAOC,GAClC92B,KAAKqC,EAAIw0B,EACT72B,KAAKkP,EAAI4nB,EACT92B,KAAK7B,EAAI6B,KAAK5B,EAAI,KAEpB,QAAS83B,IAA0BW,EAAOC,EAAOyC,EAAIH,GACnD,GAAIxE,GAAO,GAAIkF,IAAoBjD,EAAOC,EAM1C,OALAoC,IAAqBt4B,KAAKg0B,GACtB2E,GAAItD,GAA0BrB,EAAMiC,EAAOC,EAAOyC,GAClDH,GAAInD,GAA0BrB,EAAMkC,EAAOD,EAAOuC,GACtDjB,GAAqBtB,EAAMj1B,GAAG81B,MAAM92B,KAAK,GAAI23B,IAAwB3D,EAAMiC,EAAOC,IAClFqB,GAAqBrB,EAAMl1B,GAAG81B,MAAM92B,KAAK,GAAI23B,IAAwB3D,EAAMkC,EAAOD,IAC3EjC,EAET,QAAS4D,IAAgC3B,EAAO0C,EAAIH,GAClD,GAAIxE,GAAO,GAAIkF,IAAoBjD,EAAO,KAI1C,OAHAjC,GAAKz2B,EAAIo7B,EACT3E,EAAKx2B,EAAIg7B,EACTF,GAAqBt4B,KAAKg0B,GACnBA,EAET,QAASqB,IAA0BrB,EAAMiC,EAAOC,EAAOxB,GAChDV,EAAKz2B,GAAMy2B,EAAKx2B,EAIVw2B,EAAKvyB,IAAMy0B,EACpBlC,EAAKx2B,EAAIk3B,EAETV,EAAKz2B,EAAIm3B,GANTV,EAAKz2B,EAAIm3B,EACTV,EAAKvyB,EAAIw0B,EACTjC,EAAK1lB,EAAI4nB,GAOb,QAASyB,IAAwB3D,EAAMiC,EAAOC,GAC5C,GAAIyC,GAAK3E,EAAKz2B,EAAGi7B,EAAKxE,EAAKx2B,CAC3B4B,MAAK40B,KAAOA,EACZ50B,KAAK60B,KAAOgC,EACZ72B,KAAKwxB,MAAQsF,EAAQxpB,KAAKuC,MAAMinB,EAAMxqB,EAAIuqB,EAAMvqB,EAAGwqB,EAAMx4B,EAAIu4B,EAAMv4B,GAAKs2B,EAAKvyB,IAAMw0B,EAAQvpB,KAAKuC,MAAMupB,EAAG96B,EAAIi7B,EAAGj7B,EAAGi7B,EAAGjtB,EAAI8sB,EAAG9sB,GAAKgB,KAAKuC,MAAM0pB,EAAGj7B,EAAI86B,EAAG96B,EAAG86B,EAAG9sB,EAAIitB,EAAGjtB,GAUtK,QAASytB,MACP/5B,KAAKC,EAAI,KAEX,QAAS00B,IAA4B/2B,GACnCA,EAAK6b,EAAI7b,EAAKkuB,EAAIluB,EAAKsb,EAAItb,EAAK84B,EAAI94B,EAAK43B,EAAI53B,EAAK83B,EAAI,KAkKxD,QAASsE,IAAkCC,EAAMr8B,GAC/C,GAAI4W,GAAI5W,EAAMyrB,EAAIzrB,EAAK84B,EAAG7uB,EAAS2M,EAAEiF,CACjC5R,GACEA,EAAOqR,IAAM1E,EAAG3M,EAAOqR,EAAImQ,EAAQxhB,EAAO6uB,EAAIrN,EAElD4Q,EAAKh6B,EAAIopB,EAEXA,EAAE5P,EAAI5R,EACN2M,EAAEiF,EAAI4P,EACN7U,EAAEkiB,EAAIrN,EAAEnQ,EACJ1E,EAAEkiB,IAAGliB,EAAEkiB,EAAEjd,EAAIjF,GACjB6U,EAAEnQ,EAAI1E,EAER,QAAS0lB,IAAmCD,EAAMr8B,GAChD,GAAI4W,GAAI5W,EAAMyrB,EAAIzrB,EAAKsb,EAAGrR,EAAS2M,EAAEiF,CACjC5R,GACEA,EAAOqR,IAAM1E,EAAG3M,EAAOqR,EAAImQ,EAAQxhB,EAAO6uB,EAAIrN,EAElD4Q,EAAKh6B,EAAIopB,EAEXA,EAAE5P,EAAI5R,EACN2M,EAAEiF,EAAI4P,EACN7U,EAAE0E,EAAImQ,EAAEqN,EACJliB,EAAE0E,IAAG1E,EAAE0E,EAAEO,EAAIjF,GACjB6U,EAAEqN,EAAIliB,EAER,QAAS2lB,IAA6Bv8B,GACpC,KAAOA,EAAKsb,GAAGtb,EAAOA,EAAKsb,CAC3B,OAAOtb,GAET,QAASw8B,IAAgBC,EAAOC,GAC9B,GAAyDtY,GAAIF,EAAIgT,EAA7DD,EAAOwF,EAAMzW,KAAK2W,IAA4BnV,KAKlD,KAJA8T,MACAf,GAAuB,GAAI9gB,OAAMgjB,EAAMt7B,QACvCq2B,GAAyB,GAAI2E,IAC7BhB,GAAyB,GAAIgB,MAG3B,GADAjF,EAASkE,GACLnE,KAAUC,GAAUD,EAAKvoB,EAAIwoB,EAAOxoB,GAAKuoB,EAAKvoB,IAAMwoB,EAAOxoB,GAAKuoB,EAAKv2B,EAAIw2B,EAAOx2B,IAC9Eu2B,EAAKv2B,IAAM0jB,GAAM6S,EAAKvoB,IAAMwV,KAC9BqW,GAAqBtD,EAAKjzB,GAAK,GAAI61B,IAAoB5C,GACvDuB,GAAwBvB,GACxB7S,EAAK6S,EAAKv2B,EAAGwjB,EAAK+S,EAAKvoB,GAEzBuoB,EAAOwF,EAAMjV,UACR,CAAA,IAAI0P,EAGT,KAFAO,IAA2BP,EAAOtN,KAKlC8S,IAAMrB,GAAyBqB,GAAO3C,GAA0B2C,GACpE,IAAIE,IACFtC,MAAOC,GACPT,MAAOwB,GAGT,OADA9D,IAAyB2D,GAAyBG,GAAuBf,GAAuB,KACzFqC,EAET,QAASD,IAA2Bp8B,EAAGC,GACrC,MAAOA,GAAEkO,EAAInO,EAAEmO,GAAKlO,EAAEE,EAAIH,EAAEG,EAqE9B,QAASm8B,IAA4Bt8B,EAAGC,EAAGgI,GACzC,OAAQjI,EAAEG,EAAI8H,EAAE9H,IAAMF,EAAEkO,EAAInO,EAAEmO,IAAMnO,EAAEG,EAAIF,EAAEE,IAAM8H,EAAEkG,EAAInO,EAAEmO,GAgH5D,QAASouB,IAAwBv7B,GAC/B,MAAOA,GAAEb,EAEX,QAASq8B,IAAwBx7B,GAC/B,MAAOA,GAAEmN,EAEX,QAASsuB,MACP,OACEC,MAAM,EACNC,SACAvvB,MAAO,KACPjN,EAAG,KACHgO,EAAG,MAGP,QAASyuB,IAAsB3uB,EAAGxO,EAAM+rB,EAAIC,EAAIoF,EAAIC,GAClD,IAAK7iB,EAAExO,EAAM+rB,EAAIC,EAAIoF,EAAIC,GAAK,CAC5B,GAAI+L,GAAiB,IAAXrR,EAAKqF,GAAUiM,EAAiB,IAAXrR,EAAKqF,GAAUiM,EAAWt9B,EAAKk9B,KAC1DI,GAAS,IAAIH,GAAsB3uB,EAAG8uB,EAAS,GAAIvR,EAAIC,EAAIoR,EAAIC,GAC/DC,EAAS,IAAIH,GAAsB3uB,EAAG8uB,EAAS,GAAIF,EAAIpR,EAAIoF,EAAIiM,GAC/DC,EAAS,IAAIH,GAAsB3uB,EAAG8uB,EAAS,GAAIvR,EAAIsR,EAAID,EAAI/L,GAC/DiM,EAAS,IAAIH,GAAsB3uB,EAAG8uB,EAAS,GAAIF,EAAIC,EAAIjM,EAAIC,IAGvE,QAASkM,IAAqBC,EAAM98B,EAAGgO,EAAG0V,EAAIF,EAAIoS,EAAIG,GACpD,GAA6BgH,GAAzBC,KAiCJ,OAhCA,SAAUC,GAAK39B,EAAM+rB,EAAIC,EAAIoF,EAAIC,GAC/B,KAAItF,EAAKuK,GAAMtK,EAAKyK,GAAWrS,EAALgN,GAAgBlN,EAALmN,GAArC,CACA,GAAI1jB,EAAQ3N,EAAK2N,MAAO,CACtB,GAAIA,GAAO0e,EAAK3rB,EAAIV,EAAKU,EAAG4rB,EAAK5d,EAAI1O,EAAK0O,EAAGkvB,EAAYvR,EAAKA,EAAKC,EAAKA,CACxE,IAAgBoR,EAAZE,EAA0B,CAC5B,GAAIjJ,GAAWjlB,KAAKyC,KAAKurB,EAAeE,EACxCxZ,GAAK1jB,EAAIi0B,EAAUzQ,EAAKxV,EAAIimB,EAC5B2B,EAAK51B,EAAIi0B,EAAU8B,EAAK/nB,EAAIimB,EAC5B8I,EAAe9vB,GAInB,IAAK,GADD2vB,GAAWt9B,EAAKk9B,MAAOW,EAAiB,IAAX9R,EAAKqF,GAAU0M,EAAiB,IAAX9R,EAAKqF,GAAUhwB,EAAQX,GAAKm9B,EAAIE,EAAQrvB,GAAKovB,EAC1F95B,EAAI+5B,GAAS,EAAI18B,EAAOwJ,EAAI7G,EAAI,EAAO6G,EAAJ7G,IAASA,EACnD,GAAIhE,EAAOs9B,EAAa,EAAJt5B,GAAQ,OAAY,EAAJA,GACnC,IAAK,GACJ25B,EAAK39B,EAAM+rB,EAAIC,EAAI6R,EAAIC,EACvB,MAED,KAAK,GACJH,EAAK39B,EAAM69B,EAAI7R,EAAIoF,EAAI0M,EACvB,MAED,KAAK,GACJH,EAAK39B,EAAM+rB,EAAI+R,EAAID,EAAIxM,EACvB,MAED,KAAK,GACJsM,EAAK39B,EAAM69B,EAAIC,EAAI1M,EAAIC,MAI1BmM,EAAMpZ,EAAIF,EAAIoS,EAAIG,GACdgH,EAGT,QAASO,IAAkBz9B,EAAGC,GAC5BD,EAAI8E,GAAGgM,IAAI9Q,GACXC,EAAI6E,GAAGgM,IAAI7Q,EACX,IAAIy9B,GAAK19B,EAAE+Q,EAAG4sB,EAAK39B,EAAEgR,EAAG4sB,EAAK59B,EAAEC,EAAG49B,EAAK59B,EAAE8Q,EAAI2sB,EAAII,EAAK79B,EAAE+Q,EAAI2sB,EAAII,EAAK99B,EAAEA,EAAI29B,CAC3E,OAAO,UAAS7nB,GACd,MAAO,IAAM9D,GAAW9C,KAAKqB,MAAMktB,EAAKG,EAAK9nB,IAAM9D,GAAW9C,KAAKqB,MAAMmtB,EAAKG,EAAK/nB,IAAM9D,GAAW9C,KAAKqB,MAAMotB,EAAKG,EAAKhoB,KAI7H,QAASioB,IAAqBh+B,EAAGC,GAC/B,GAAoBiB,GAAhBuC,KAAQwE,IACZ,KAAK/G,IAAKlB,GACJkB,IAAKjB,GACPwD,EAAEvC,GAAK+8B,GAAej+B,EAAEkB,GAAIjB,EAAEiB,IAE9B+G,EAAE/G,GAAKlB,EAAEkB,EAGb,KAAKA,IAAKjB,GACFiB,IAAKlB,KACTiI,EAAE/G,GAAKjB,EAAEiB,GAGb,OAAO,UAAS6U,GACd,IAAK7U,IAAKuC,GAAGwE,EAAE/G,GAAKuC,EAAEvC,GAAG6U,EACzB,OAAO9N,IAIX,QAASi2B,IAAqBl+B,EAAGC,GAE/B,MADAD,IAAKA,EAAGC,GAAKA,EACN,SAAS8V,GACd,MAAO/V,IAAK,EAAI+V,GAAK9V,EAAI8V,GAI7B,QAASooB,IAAqBn+B,EAAGC,GAC/B,GAAkFm+B,GAAIC,EAAIC,EAAtFC,EAAKC,GAAuBn2B,UAAYo2B,GAAuBp2B,UAAY,EAAe5E,EAAI,GAAIwB,KAAQimB,IAE9G,KADAlrB,GAAQ,GAAIC,GAAQ,IACZm+B,EAAKI,GAAuBhsB,KAAKxS,MAAQq+B,EAAKI,GAAuBjsB,KAAKvS,MAC3Eq+B,EAAKD,EAAGK,OAASH,IACpBD,EAAKr+B,EAAEmC,MAAMm8B,EAAID,GACbr5B,EAAExB,GAAIwB,EAAExB,IAAM66B,EAASr5B,IAAIxB,GAAK66B,IAEjCF,EAAKA,EAAG,OAASC,EAAKA,EAAG,IACxBp5B,EAAExB,GAAIwB,EAAExB,IAAM46B,EAASp5B,IAAIxB,GAAK46B,GAEpCp5B,IAAIxB,GAAK,KACTynB,EAAEzoB,MACAgB,EAAGA,EACHtD,EAAG+9B,GAAqBE,EAAIC,MAGhCE,EAAKE,GAAuBp2B,SAM9B,OAJIk2B,GAAKt+B,EAAEW,SACT09B,EAAKr+B,EAAEmC,MAAMm8B,GACTt5B,EAAExB,GAAIwB,EAAExB,IAAM66B,EAASr5B,IAAIxB,GAAK66B,GAE/Br5B,EAAErE,OAAS,EAAIsqB,EAAE,IAAMjrB,EAAIirB,EAAE,GAAG/qB,EAAG,SAAS4V,GACjD,MAAO9V,GAAE8V,GAAK,KACX,WACH,MAAO9V,KACJA,EAAIirB,EAAEtqB,OAAQ,SAASmV,GAC1B,IAAK,GAAW9J,GAAPxI,EAAI,EAAUxD,EAAJwD,IAASA,EAAGwB,GAAGgH,EAAIif,EAAEznB,IAAIA,GAAKwI,EAAE9L,EAAE4V,EACrD,OAAO9Q,GAAE0S,KAAK,MAKlB,QAASsmB,IAAej+B,EAAGC,GAEzB,IADA,GAAiCgO,GAA7BxK,EAAIqB,GAAG65B,cAAc/9B,SAChB6C,GAAK,KAAOwK,EAAInJ,GAAG65B,cAAcl7B,GAAGzD,EAAGC,MAChD,MAAOgO,GAOT,QAAS2wB,IAAoB5+B,EAAGC,GAC9B,GAAqFwD,GAAjFtD,KAAQ8H,KAAQ42B,EAAK7+B,EAAEY,OAAQk+B,EAAK7+B,EAAEW,OAAQm+B,EAAK5vB,KAAKiD,IAAIpS,EAAEY,OAAQX,EAAEW,OAC5E,KAAK6C,EAAI,EAAOs7B,EAAJt7B,IAAUA,EAAGtD,EAAEsC,KAAKw7B,GAAej+B,EAAEyD,GAAIxD,EAAEwD,IACvD,MAAUo7B,EAAJp7B,IAAUA,EAAGwE,EAAExE,GAAKzD,EAAEyD,EAC5B,MAAUq7B,EAAJr7B,IAAUA,EAAGwE,EAAExE,GAAKxD,EAAEwD,EAC5B,OAAO,UAASsS,GACd,IAAKtS,EAAI,EAAOs7B,EAAJt7B,IAAUA,EAAGwE,EAAExE,GAAKtD,EAAEsD,GAAGsS,EACrC,OAAO9N,IA4CX,QAAS+2B,IAAc/wB,GACrB,MAAO,UAAS8H,GACd,MAAY,IAALA,EAAS,EAAIA,GAAK,EAAI,EAAI9H,EAAE8H,IAGvC,QAASkpB,IAAgBhxB,GACvB,MAAO,UAAS8H,GACd,MAAO,GAAI9H,EAAE,EAAI8H,IAGrB,QAASmpB,IAAgBjxB,GACvB,MAAO,UAAS8H,GACd,MAAO,IAAU,GAAJA,EAAS9H,EAAE,EAAI8H,GAAK,EAAI9H,EAAE,EAAI,EAAI8H,KAGnD,QAASopB,IAAappB,GACpB,MAAOA,GAAIA,EAEb,QAASqpB,IAAcrpB,GACrB,MAAOA,GAAIA,EAAIA,EAEjB,QAASspB,IAAmBtpB,GAC1B,GAAS,GAALA,EAAQ,MAAO,EACnB,IAAIA,GAAK,EAAG,MAAO,EACnB,IAAIkV,GAAKlV,EAAIA,EAAGupB,EAAKrU,EAAKlV,CAC1B,OAAO,IAAS,GAAJA,EAASupB,EAAK,GAAKvpB,EAAIkV,GAAMqU,EAAK,KAEhD,QAASC,IAAar6B,GACpB,MAAO,UAAS6Q,GACd,MAAO5G,MAAK2C,IAAIiE,EAAG7Q,IAGvB,QAASs6B,IAAYzpB,GACnB,MAAO,GAAI5G,KAAK+B,IAAI6E,EAAIzG,IAE1B,QAASmwB,IAAY1pB,GACnB,MAAO5G,MAAK2C,IAAI,EAAG,IAAMiE,EAAI,IAE/B,QAAS2pB,IAAe3pB,GACtB,MAAO,GAAI5G,KAAKyC,KAAK,EAAImE,EAAIA,GAE/B,QAAS4pB,IAAgB3/B,EAAGqW,GAC1B,GAAIpR,EAGJ,OAFItE,WAAUC,OAAS,IAAGyV,EAAI,KAC1B1V,UAAUC,OAAQqE,EAAIoR,EAAI+S,GAAIja,KAAKI,KAAK,EAAIvP,IAASA,EAAI,EAAGiF,EAAIoR,EAAI,GACjE,SAASN,GACd,MAAO,GAAI/V,EAAImP,KAAK2C,IAAI,EAAG,IAAMiE,GAAK5G,KAAKU,KAAKkG,EAAI9Q,GAAKmkB,GAAI/S,IAGjE,QAASupB,IAAa36B,GAEpB,MADKA,KAAGA,EAAI,SACL,SAAS8Q,GACd,MAAOA,GAAIA,IAAM9Q,EAAI,GAAK8Q,EAAI9Q,IAGlC,QAAS46B,IAAe9pB,GACtB,MAAW,GAAI,KAARA,EAAe,OAASA,EAAIA,EAAQ,EAAI,KAARA,EAAe,QAAUA,GAAK,IAAM,MAAQA,EAAI,IAAU,IAAM,KAAVA,EAAiB,QAAUA,GAAK,KAAO,MAAQA,EAAI,MAAQ,QAAUA,GAAK,MAAQ,MAAQA,EAAI,QAG7L,QAAS+pB,IAAkB9/B,EAAGC,GAC5BD,EAAI8E,GAAGi7B,IAAI//B,GACXC,EAAI6E,GAAGi7B,IAAI9/B,EACX,IAAI+/B,GAAKhgC,EAAEgQ,EAAGiwB,EAAKjgC,EAAEiI,EAAGi4B,EAAKlgC,EAAEkE,EAAGi8B,EAAKlgC,EAAE+P,EAAIgwB,EAAII,EAAKngC,EAAEgI,EAAIg4B,EAAII,EAAKpgC,EAAEiE,EAAIg8B,CAG3E,OAFI7/B,OAAM+/B,KAAKA,EAAK,EAAGH,EAAK5/B,MAAM4/B,GAAMhgC,EAAEgI,EAAIg4B,GAC1C5/B,MAAM8/B,IAAKA,EAAK,EAAGH,EAAK3/B,MAAM2/B,GAAM//B,EAAE+P,EAAIgwB,GAAaG,EAAK,IAAKA,GAAM,IAAmB,KAALA,IAAWA,GAAM,KACnG,SAASpqB,GACd,MAAO9E,IAAW+uB,EAAKG,EAAKpqB,EAAGkqB,EAAKG,EAAKrqB,EAAGmqB,EAAKG,EAAKtqB,GAAK,IAI/D,QAASuqB,IAAkBtgC,EAAGC,GAC5BD,EAAI8E,GAAGwN,IAAItS,GACXC,EAAI6E,GAAGwN,IAAIrS,EACX,IAAI+/B,GAAKhgC,EAAEgQ,EAAGuwB,EAAKvgC,EAAEiF,EAAGi7B,EAAKlgC,EAAEkE,EAAGi8B,EAAKlgC,EAAE+P,EAAIgwB,EAAI1B,EAAKr+B,EAAEgF,EAAIs7B,EAAIF,EAAKpgC,EAAEiE,EAAIg8B,CAG3E,OAFI7/B,OAAMi+B,KAAKA,EAAK,EAAGiC,EAAKlgC,MAAMkgC,GAAMtgC,EAAEgF,EAAIs7B,GAC1ClgC,MAAM8/B,IAAKA,EAAK,EAAGH,EAAK3/B,MAAM2/B,GAAM//B,EAAE+P,EAAIgwB,GAAaG,EAAK,IAAKA,GAAM,IAAmB,KAALA,IAAWA,GAAM,KACnG,SAASpqB,GACd,MAAO5F,IAAW6vB,EAAKG,EAAKpqB,EAAGwqB,EAAKjC,EAAKvoB,EAAGmqB,EAAKG,EAAKtqB,GAAK,IAI/D,QAASyqB,IAAkBxgC,EAAGC,GAC5BD,EAAI8E,GAAG27B,IAAIzgC,GACXC,EAAI6E,GAAG27B,IAAIxgC,EACX,IAAIigC,GAAKlgC,EAAEkE,EAAGw8B,EAAK1gC,EAAEA,EAAG49B,EAAK59B,EAAEC,EAAGogC,EAAKpgC,EAAEiE,EAAIg8B,EAAIS,EAAK1gC,EAAED,EAAI0gC,EAAI3C,EAAK99B,EAAEA,EAAI29B,CAC3E,OAAO,UAAS7nB,GACd,MAAO3E,IAAW8uB,EAAKG,EAAKtqB,EAAG2qB,EAAKC,EAAK5qB,EAAG6nB,EAAKG,EAAKhoB,GAAK,IAI/D,QAAS6qB,IAAoB5gC,EAAGC,GAE9B,MADAA,IAAKD,EACE,SAAS+V,GACd,MAAO5G,MAAKqB,MAAMxQ,EAAIC,EAAI8V,IAa9B,QAAS8qB,IAAat2B,GACpB,GAAIu2B,IAAOv2B,EAAEvK,EAAGuK,EAAEtK,GAAK8gC,GAAOx2B,EAAEtC,EAAGsC,EAAEvJ,GAAKggC,EAAKC,GAAsBH,GAAKI,EAAKC,GAAgBL,EAAIC,GAAKK,EAAKH,GAAsBI,GAAoBN,EAAID,GAAKI,KAAQ,CACpKJ,GAAG,GAAKC,EAAG,GAAKA,EAAG,GAAKD,EAAG,KAC7BA,EAAG,IAAM,GACTA,EAAG,IAAM,GACTE,GAAM,GACNE,GAAM,IAERr/B,KAAKykB,QAAU0a,EAAK7xB,KAAKuC,MAAMovB,EAAG,GAAIA,EAAG,IAAM3xB,KAAKuC,OAAOqvB,EAAG,GAAIA,EAAG,KAAOpvB,GAC5E9P,KAAK2wB,WAAcjoB,EAAErF,EAAGqF,EAAE0D,GAC1BpM,KAAK8U,OAAUqqB,EAAII,GACnBv/B,KAAKy/B,KAAOF,EAAKjyB,KAAKuC,MAAMwvB,EAAIE,GAAMzvB,GAAa,EAKrD,QAASwvB,IAAgBnhC,EAAGC,GAC1B,MAAOD,GAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAEhC,QAASghC,IAAsBjhC,GAC7B,GAAIkB,GAAIiO,KAAKyC,KAAKuvB,GAAgBnhC,EAAGA,GAKrC,OAJIkB,KACFlB,EAAE,IAAMkB,EACRlB,EAAE,IAAMkB,GAEHA,EAET,QAASmgC,IAAoBrhC,EAAGC,EAAGiB,GAGjC,MAFAlB,GAAE,IAAMkB,EAAIjB,EAAE,GACdD,EAAE,IAAMkB,EAAIjB,EAAE,GACPD,EAWT,QAASuhC,IAAwBvhC,EAAGC,GAClC,GAAoByD,GAAhBuB,KAAQimB,KAAWrN,EAAI/Y,GAAG08B,UAAUxhC,GAAI+d,EAAIjZ,GAAG08B,UAAUvhC,GAAIwhC,EAAK5jB,EAAE2U,UAAWkP,EAAK3jB,EAAEyU,UAAWmP,EAAK9jB,EAAEyI,OAAQsb,EAAK7jB,EAAEuI,OAAQub,EAAKhkB,EAAEyjB,KAAMQ,EAAK/jB,EAAEujB,KAAMS,EAAKlkB,EAAElH,MAAOqrB,EAAKjkB,EAAEpH,KA6ClL,OA5CI8qB,GAAG,IAAMC,EAAG,IAAMD,EAAG,IAAMC,EAAG,IAChCz8B,EAAExC,KAAK,aAAc,KAAM,IAAK,KAAM,KACtCyoB,EAAEzoB,MACAgB,EAAG,EACHtD,EAAG+9B,GAAqBuD,EAAG,GAAIC,EAAG,MAElCj+B,EAAG,EACHtD,EAAG+9B,GAAqBuD,EAAG,GAAIC,EAAG,OAGpCz8B,EAAExC,KADOi/B,EAAG,IAAMA,EAAG,GACd,aAAeA,EAAK,IAEpB,IAELC,GAAMC,GACJD,EAAKC,EAAK,IAAKA,GAAM,IAAcA,EAAKD,EAAK,MAAKA,GAAM,KAC5DzW,EAAEzoB,MACAgB,EAAGwB,EAAExC,KAAKwC,EAAEgiB,MAAQ,UAAW,KAAM,KAAO,EAC5C9mB,EAAG+9B,GAAqByD,EAAIC,MAErBA,GACT38B,EAAExC,KAAKwC,EAAEgiB,MAAQ,UAAY2a,EAAK,KAEhCC,GAAMC,EACR5W,EAAEzoB,MACAgB,EAAGwB,EAAExC,KAAKwC,EAAEgiB,MAAQ,SAAU,KAAM,KAAO,EAC3C9mB,EAAG+9B,GAAqB2D,EAAIC,KAErBA,GACT78B,EAAExC,KAAKwC,EAAEgiB,MAAQ,SAAW6a,EAAK,KAE/BC,EAAG,IAAMC,EAAG,IAAMD,EAAG,IAAMC,EAAG,IAChCt+B,EAAIuB,EAAExC,KAAKwC,EAAEgiB,MAAQ,SAAU,KAAM,IAAK,KAAM,KAChDiE,EAAEzoB,MACAgB,EAAGC,EAAI,EACPvD,EAAG+9B,GAAqB6D,EAAG,GAAIC,EAAG,MAElCv+B,EAAGC,EAAI,EACPvD,EAAG+9B,GAAqB6D,EAAG,GAAIC,EAAG,QAElB,GAATA,EAAG,IAAoB,GAATA,EAAG,KAC1B/8B,EAAExC,KAAKwC,EAAEgiB,MAAQ,SAAW+a,EAAK,KAEnCt+B,EAAIwnB,EAAEtqB,OACC,SAASmV,GAEd,IADA,GAAY9J,GAARxI,EAAI,KACCA,EAAIC,GAAGuB,GAAGgH,EAAIif,EAAEznB,IAAIA,GAAKwI,EAAE9L,EAAE4V,EACtC,OAAO9Q,GAAE0S,KAAK,KAGlB,QAASsqB,IAAuBjiC,EAAGC,GAEjC,MADAA,IAAKA,GAAKD,GAAKA,IAAM,EAAIC,EAClB,SAASE,GACd,OAAQA,EAAIH,GAAKC,GAGrB,QAASiiC,IAAsBliC,EAAGC,GAEhC,MADAA,IAAKA,GAAKD,GAAKA,IAAM,EAAIC,EAClB,SAASE,GACd,MAAOgP,MAAK+C,IAAI,EAAG/C,KAAKiD,IAAI,GAAIjS,EAAIH,GAAKC,KAW7C,QAASkiC,IAAqBC,GAE5B,IADA,GAAIvc,GAAQuc,EAAKn/B,OAAQ62B,EAAMsI,EAAKp/B,OAAQq/B,EAAMC,GAAoCzc,EAAOiU,GAAMlU,GAAWC,GACvGA,IAAUwc,GACfxc,EAAQA,EAAMnc,OACdkc,EAAOnjB,KAAKojB,EAGd,KADA,GAAI3kB,GAAI0kB,EAAOhlB,OACRk5B,IAAQuI,GACbzc,EAAOuU,OAAOj5B,EAAG,EAAG44B,GACpBA,EAAMA,EAAIpwB,MAEZ,OAAOkc,GAET,QAAS2c,IAA0B9iC,GAEjC,IADA,GAAI+iC,MAAgB94B,EAASjK,EAAKiK,OACjB,MAAVA,GACL84B,EAAU//B,KAAKhD,GACfA,EAAOiK,EACPA,EAASA,EAAOA,MAGlB,OADA84B,GAAU//B,KAAKhD,GACR+iC,EAET,QAASF,IAAoCtiC,EAAGC,GAC9C,GAAID,IAAMC,EAAG,MAAOD,EAEpB,KADA,GAAIyiC,GAASF,GAA0BviC,GAAI0iC,EAASH,GAA0BtiC,GAAI0iC,EAAQF,EAAOxb,MAAO2b,EAAQF,EAAOzb,MAAO4b,EAAa,KACpIF,IAAUC,GACfC,EAAaF,EACbA,EAAQF,EAAOxb,MACf2b,EAAQF,EAAOzb,KAEjB,OAAO4b,GAoUT,QAASC,IAAyB9hC,GAChCA,EAAE+hC,OAAS,EAEb,QAASC,IAAuBhiC,GAC9BA,EAAE+hC,OAAS,GAEb,QAASE,IAAyBjiC,GAChCA,EAAE+hC,OAAS,EACX/hC,EAAEkiC,GAAKliC,EAAEb,EAAGa,EAAEmiC,GAAKniC,EAAEmN,EAEvB,QAASi1B,IAAwBpiC,GAC/BA,EAAE+hC,OAAS,GAEb,QAASM,IAA0BC,EAAMC,EAAOC,GAC9C,GAAInf,GAAK,EAAGC,EAAK,CAEjB,IADAgf,EAAKG,OAAS,GACTH,EAAK5G,KAER,IADA,GAAkDz0B,GAA9C00B,EAAQ2G,EAAK3G,MAAOj5B,EAAIi5B,EAAM/7B,OAAQ6C,EAAI,KACrCA,EAAIC,GACXuE,EAAI00B,EAAMl5B,GACD,MAALwE,IACJo7B,GAA0Bp7B,EAAGs7B,EAAOC,GACpCF,EAAKG,QAAUx7B,EAAEw7B,OACjBpf,GAAMpc,EAAEw7B,OAASx7B,EAAEoc,GACnBC,GAAMrc,EAAEw7B,OAASx7B,EAAEqc,GAGvB,IAAIgf,EAAKl2B,MAAO,CACTk2B,EAAK5G,OACR4G,EAAKl2B,MAAMjN,GAAKgP,KAAKu0B,SAAW,GAChCJ,EAAKl2B,MAAMe,GAAKgB,KAAKu0B,SAAW,GAElC,IAAIxiC,GAAIqiC,EAAQC,EAAQF,EAAKl2B,MAAMsxB,MACnC4E,GAAKG,QAAUH,EAAKK,YAAcziC,EAClCmjB,GAAMnjB,EAAIoiC,EAAKl2B,MAAMjN,EACrBmkB,GAAMpjB,EAAIoiC,EAAKl2B,MAAMe,EAEvBm1B,EAAKjf,GAAKA,EAAKif,EAAKG,OACpBH,EAAKhf,GAAKA,EAAKgf,EAAKG,OA6DtB,QAASG,IAA0BvgC,EAAQwgC,GAIzC,MAHA/+B,IAAGiQ,OAAO1R,EAAQwgC,EAAW,OAAQ,WAAY,SACjDxgC,EAAOs5B,MAAQt5B,EACfA,EAAOygC,MAAQC,GACR1gC,EAET,QAAS2gC,IAA+BvkC,EAAM4K,GAE5C,IADA,GAAIsyB,IAAUl9B,GACiB,OAAvBA,EAAOk9B,EAAM1V,QAEnB,GADA5c,EAAS5K,IACJs9B,EAAWt9B,EAAKs9B,YAAcr5B,EAAIq5B,EAASn8B,QAE9C,IADA,GAAI8C,GAAGq5B,IACEr5B,GAAK,GAAGi5B,EAAMl6B,KAAKs6B,EAASr5B,IAI3C,QAASugC,IAA8BxkC,EAAM4K,GAE3C,IADA,GAAIsyB,IAAUl9B,GAAQykC,KACS,OAAvBzkC,EAAOk9B,EAAM1V,QAEnB,GADAid,EAAOzhC,KAAKhD,IACPs9B,EAAWt9B,EAAKs9B,YAAcr5B,EAAIq5B,EAASn8B,QAE9C,IADA,GAAY8C,GAAGq5B,EAAXt5B,EAAI,KACCA,EAAIC,GAAGi5B,EAAMl6B,KAAKs6B,EAASt5B,GAGxC,MAAgC,OAAxBhE,EAAOykC,EAAOjd,QACpB5c,EAAS5K,GAGb,QAAS0kC,IAA4BnjC,GACnC,MAAOA,GAAE+7B,SAEX,QAASqH,IAAyBpjC,GAChC,MAAOA,GAAEU,MAEX,QAAS2iC,IAAwBrkC,EAAGC,GAClC,MAAOA,GAAEyB,MAAQ1B,EAAE0B,MAErB,QAASqiC,IAAyBpH,GAChC,MAAO73B,IAAGyiB,MAAMoV,EAAM70B,IAAI,SAAS4B,GACjC,OAAQA,EAAOqzB,cAAgBj1B,IAAI,SAASw8B,GAC1C,OACErhC,OAAQyG,EACR1G,OAAQshC,QAqJhB,QAASC,IAAiBvjC,GACxB,MAAOA,GAAEb,EAEX,QAASqkC,IAAiBxjC,GACxB,MAAOA,GAAEmN,EAEX,QAASs2B,IAAmBzjC,EAAG2iB,EAAIxV,GACjCnN,EAAE2iB,GAAKA,EACP3iB,EAAEmN,EAAIA,EAiER,QAASu2B,IAA4B56B,GACnC,MAAOhF,IAAG+U,MAAM/P,EAAKlJ,QAEvB,QAAS+jC,IAA0B76B,GAEjC,IADA,GAAIQ,GAAI,GAAIC,EAAIT,EAAK,GAAGlJ,OAAQ+iB,OACvBrZ,EAAIC,GAAGoZ,EAAGrZ,GAAK,CACxB,OAAOqZ,GAET,QAASihB,IAAwB5e,GAE/B,IADA,GAAmC9kB,GAA/BuC,EAAI,EAAG6G,EAAI,EAAG8F,EAAI4V,EAAM,GAAG,GAAOtiB,EAAIsiB,EAAMplB,OACtC8C,EAAJD,IAASA,GACRvC,EAAI8kB,EAAMviB,GAAG,IAAM2M,IACtB9F,EAAI7G,EACJ2M,EAAIlP,EAGR,OAAOoJ,GAET,QAASu6B,IAAyB7jC,GAChC,MAAOA,GAAE8jC,OAAOC,GAAoB,GAEtC,QAASA,IAAmB1uB,EAAGrV,GAC7B,MAAOqV,GAAIrV,EAAE,GAgDf,QAASgkC,IAA8BnrB,EAAOorB,GAC5C,MAAOC,IAA4BrrB,EAAO1K,KAAKmH,KAAKnH,KAAKoH,IAAI0uB,EAAOrkC,QAAUuO,KAAKg2B,IAAM,IAE3F,QAASD,IAA4BrrB,EAAOnW,GAE1C,IADA,GAAIvD,GAAI,GAAIF,GAAK4Z,EAAM,GAAItP,GAAKsP,EAAM,GAAK5Z,GAAKyD,EAAGuK,OAC1C9N,GAAKuD,GAAGuK,EAAE9N,GAAKoK,EAAIpK,EAAIF,CAChC,OAAOgO,GAET,QAASm3B,IAAyBH,GAChC,OAASngC,GAAGsN,IAAI6yB,GAASngC,GAAGoN,IAAI+yB,IA2ClC,QAASI,IAAmBrlC,EAAGC,GAC7B,MAAOD,GAAE0B,MAAQzB,EAAEyB,MAErB,QAAS4jC,IAAqBtlC,EAAGC,GAC/B,GAAIgI,GAAIjI,EAAEulC,UACVvlC,GAAEulC,WAAatlC,EACfA,EAAEulC,WAAaxlC,EACfC,EAAEslC,WAAat9B,EACfA,EAAEu9B,WAAavlC,EAEjB,QAASwlC,IAAqBzlC,EAAGC,GAC/BD,EAAEulC,WAAatlC,EACfA,EAAEulC,WAAaxlC,EAEjB,QAAS0lC,IAAyB1lC,EAAGC,GACnC,GAAI6rB,GAAK7rB,EAAEE,EAAIH,EAAEG,EAAG4rB,EAAK9rB,EAAEkO,EAAInO,EAAEmO,EAAGw3B,EAAK3lC,EAAE+Q,EAAI9Q,EAAE8Q,CACjD,OAAO,KAAO40B,EAAKA,EAAK7Z,EAAKA,EAAKC,EAAKA,EAEzC,QAAS6Z,IAAuBnmC,GAG9B,QAASomC,GAAMpmC,GACbqmC,EAAO32B,KAAKiD,IAAI3S,EAAKU,EAAIV,EAAKsR,EAAG+0B,GACjCC,EAAO52B,KAAK+C,IAAIzS,EAAKU,EAAIV,EAAKsR,EAAGg1B,GACjCC,EAAO72B,KAAKiD,IAAI3S,EAAK0O,EAAI1O,EAAKsR,EAAGi1B,GACjCC,EAAO92B,KAAK+C,IAAIzS,EAAK0O,EAAI1O,EAAKsR,EAAGk1B,GANnC,IAAMtJ,EAAQl9B,EAAKs9B,YAAer5B,EAAIi5B,EAAM/7B,QAA5C,CACA,GAAI+7B,GAA6E38B,EAAGC,EAAGgI,EAAGxE,EAAG6G,EAAGpJ,EAAGwC,EAAxFoiC,MAAiBC,SAAkBC,MAAiBC,QAY/D,IALAtJ,EAAMnoB,QAAQ0xB,IACdlmC,EAAI28B,EAAM,GACV38B,EAAEG,GAAKH,EAAE+Q,EACT/Q,EAAEmO,EAAI,EACN03B,EAAM7lC,GACF0D,EAAI,IACNzD,EAAI08B,EAAM,GACV18B,EAAEE,EAAIF,EAAE8Q,EACR9Q,EAAEkO,EAAI,EACN03B,EAAM5lC,GACFyD,EAAI,GAQN,IAPAuE,EAAI00B,EAAM,GACVwJ,GAAoBnmC,EAAGC,EAAGgI,GAC1B49B,EAAM59B,GACNq9B,GAAqBtlC,EAAGiI,GACxBjI,EAAEwlC,WAAav9B,EACfq9B,GAAqBr9B,EAAGhI,GACxBA,EAAID,EAAEulC,WACD9hC,EAAI,EAAOC,EAAJD,EAAOA,IAAK,CACtB0iC,GAAoBnmC,EAAGC,EAAGgI,EAAI00B,EAAMl5B,GACpC,IAAI2iC,GAAQ,EAAGC,EAAK,EAAGC,EAAK,CAC5B,KAAKh8B,EAAIrK,EAAEslC,WAAYj7B,IAAMrK,EAAGqK,EAAIA,EAAEi7B,WAAYc,IAChD,GAAIX,GAAyBp7B,EAAGrC,GAAI,CAClCm+B,EAAQ,CACR,OAGJ,GAAa,GAATA,EACF,IAAKllC,EAAIlB,EAAEwlC,WAAYtkC,IAAMoJ,EAAEk7B,aACzBE,GAAyBxkC,EAAG+G,GADS/G,EAAIA,EAAEskC,WAAYc,KAM3DF,GACOE,EAALD,GAAWA,GAAMC,GAAMrmC,EAAE8Q,EAAI/Q,EAAE+Q,EAAG00B,GAAqBzlC,EAAGC,EAAIqK,GAASm7B,GAAqBzlC,EAAIkB,EAAGjB,GACvGwD,MAEA6hC,GAAqBtlC,EAAGiI,GACxBhI,EAAIgI,EACJ49B,EAAM59B,IAKd,GAAIoc,IAAMyhB,EAAOC,GAAQ,EAAGzhB,GAAM0hB,EAAOC,GAAQ,EAAGtc,EAAK,CACzD,KAAKlmB,EAAI,EAAOC,EAAJD,EAAOA,IACjBwE,EAAI00B,EAAMl5B,GACVwE,EAAE9H,GAAKkkB,EACPpc,EAAEkG,GAAKmW,EACPqF,EAAKxa,KAAK+C,IAAIyX,EAAI1hB,EAAE8I,EAAI5B,KAAKyC,KAAK3J,EAAE9H,EAAI8H,EAAE9H,EAAI8H,EAAEkG,EAAIlG,EAAEkG,GAExD1O,GAAKsR,EAAI4Y,EACTgT,EAAMnoB,QAAQ+xB,KAEhB,QAASL,IAAmBzmC,GAC1BA,EAAK8lC,WAAa9lC,EAAK+lC,WAAa/lC,EAEtC,QAAS8mC,IAAqB9mC,SACrBA,GAAK8lC,iBACL9lC,GAAK+lC,WAEd,QAASgB,IAAwB/mC,EAAMU,EAAGgO,EAAGjN,GAC3C,GAAI67B,GAAWt9B,EAAKs9B,QAIpB,IAHAt9B,EAAKU,EAAIA,GAAKe,EAAIzB,EAAKU,EACvBV,EAAK0O,EAAIA,GAAKjN,EAAIzB,EAAK0O,EACvB1O,EAAKsR,GAAK7P,EACN67B,EAEF,IADA,GAAIt5B,GAAI,GAAIC,EAAIq5B,EAASn8B,SAChB6C,EAAIC,GAAG8iC,GAAwBzJ,EAASt5B,GAAItD,EAAGgO,EAAGjN,GAG/D,QAASilC,IAAoBnmC,EAAGC,EAAGgI,GACjC,GAAIw+B,GAAKzmC,EAAE+Q,EAAI9I,EAAE8I,EAAG+a,EAAK7rB,EAAEE,EAAIH,EAAEG,EAAG4rB,EAAK9rB,EAAEkO,EAAInO,EAAEmO,CACjD,IAAIs4B,IAAO3a,GAAMC,GAAK,CACpB,GAAI2a,GAAKzmC,EAAE8Q,EAAI9I,EAAE8I,EAAG41B,EAAK7a,EAAKA,EAAKC,EAAKA,CACxC2a,IAAMA,EACND,GAAMA,CACN,IAAItmC,GAAI,IAAMsmC,EAAKC,IAAO,EAAIC,GAAKx4B,EAAIgB,KAAKyC,KAAKzC,KAAK+C,IAAI,EAAG,EAAIw0B,GAAMD,EAAKE,IAAOF,GAAME,GAAMF,EAAKC,EAAKA,KAAQ,EAAIC,EACrH1+B,GAAE9H,EAAIH,EAAEG,EAAIA,EAAI2rB,EAAK3d,EAAI4d,EACzB9jB,EAAEkG,EAAInO,EAAEmO,EAAIhO,EAAI4rB,EAAK5d,EAAI2d,MAEzB7jB,GAAE9H,EAAIH,EAAEG,EAAIsmC,EACZx+B,EAAEkG,EAAInO,EAAEmO,EAuHZ,QAASy4B,IAAyB5mC,EAAGC,GACnC,MAAOD,GAAE0J,QAAUzJ,EAAEyJ,OAAS,EAAI,EAEpC,QAASm9B,IAAmBz2B,GAC1B,GAAI2sB,GAAW3sB,EAAE2sB,QACjB,OAAOA,GAASn8B,OAASm8B,EAAS,GAAK3sB,EAAE2F,EAE3C,QAAS+wB,IAAoB12B,GAC3B,GAA2B1M,GAAvBq5B,EAAW3sB,EAAE2sB,QACjB,QAAQr5B,EAAIq5B,EAASn8B,QAAUm8B,EAASr5B,EAAI,GAAK0M,EAAE2F,EAErD,QAASgxB,IAAmBC,EAAIC,EAAI7f,GAClC,GAAI8f,GAAS9f,GAAS6f,EAAGxjC,EAAIujC,EAAGvjC,EAChCwjC,GAAGh/B,GAAKi/B,EACRD,EAAGhiC,GAAKmiB,EACR4f,EAAG/+B,GAAKi/B,EACRD,EAAG9iC,GAAKijB,EACR6f,EAAG18B,GAAK6c,EAEV,QAAS+f,IAAoB/2B,GAE3B,IADA,GAAuE5D,GAAnE4a,EAAQ,EAAG8f,EAAS,EAAGnK,EAAW3sB,EAAE2sB,SAAUt5B,EAAIs5B,EAASn8B,SACtD6C,GAAK,GACZ+I,EAAIuwB,EAASt5B,GACb+I,EAAErI,GAAKijB,EACP5a,EAAEjC,GAAK6c,EACPA,GAAS5a,EAAEvH,GAAKiiC,GAAU16B,EAAEvE,GAGhC,QAASm/B,IAAuBC,EAAKj3B,EAAGk3B,GACtC,MAAOD,GAAIrnC,EAAE0J,SAAW0G,EAAE1G,OAAS29B,EAAIrnC,EAAIsnC,EA4C7C,QAASC,IAAmBxK,GAC1B,MAAO,GAAIj4B,GAAGoN,IAAI6qB,EAAU,SAASuH,GACnC,MAAOA,GAAMn2B,IAGjB,QAASq5B,IAAmBzK,GAC1B,MAAOA,GAAS+H,OAAO,SAAS3kC,EAAGmkC,GACjC,MAAOnkC,GAAImkC,EAAMnkC,GAChB,GAAK48B,EAASn8B,OAEnB,QAAS6mC,IAAsBhoC,GAC7B,GAAIs9B,GAAWt9B,EAAKs9B,QACpB,OAAOA,IAAYA,EAASn8B,OAAS6mC,GAAsB1K,EAAS,IAAMt9B,EAE5E,QAASioC,IAAuBjoC,GAC9B,GAA8BiE,GAA1Bq5B,EAAWt9B,EAAKs9B,QACpB,OAAOA,KAAar5B,EAAIq5B,EAASn8B,QAAU8mC,GAAuB3K,EAASr5B,EAAI,IAAMjE,EAsJvF,QAASkoC,IAAyBloC,GAChC,OACEU,EAAGV,EAAKU,EACRgO,EAAG1O,EAAK0O,EACR2d,GAAIrsB,EAAKqsB,GACTC,GAAItsB,EAAKssB,IAGb,QAAS6b,IAAqBnoC,EAAMoO,GAClC,GAAI1N,GAAIV,EAAKU,EAAI0N,EAAQ,GAAIM,EAAI1O,EAAK0O,EAAIN,EAAQ,GAAIie,EAAKrsB,EAAKqsB,GAAKje,EAAQ,GAAKA,EAAQ,GAAIke,EAAKtsB,EAAKssB,GAAKle,EAAQ,GAAKA,EAAQ,EASlI,OARS,GAALie,IACF3rB,GAAK2rB,EAAK,EACVA,EAAK,GAEE,EAALC,IACF5d,GAAK4d,EAAK,EACVA,EAAK,IAGL5rB,EAAGA,EACHgO,EAAGA,EACH2d,GAAIA,EACJC,GAAIA,GAsCR,QAAS8b,IAAeC,GACtB,GAAIjiB,GAAQiiB,EAAO,GAAIC,EAAOD,EAAOA,EAAOlnC,OAAS,EACrD,OAAemnC,GAARliB,GAAiBA,EAAOkiB,IAAWA,EAAMliB,GAElD,QAASmiB,IAAcrxB,GACrB,MAAOA,GAAMsxB,YAActxB,EAAMsxB,cAAgBJ,GAAelxB,EAAMkD,SAExE,QAASquB,IAAkBJ,EAAQjuB,EAAOsuB,EAAejjB,GACvD,GAAIhD,GAAIimB,EAAcL,EAAO,GAAIA,EAAO,IAAKrkC,EAAIyhB,EAAYrL,EAAM,GAAIA,EAAM,GAC7E,OAAO,UAAS1Z,GACd,MAAOsD,GAAEye,EAAE/hB,KAGf,QAASioC,IAAcN,EAAQO,GAC7B,GAAsEvc,GAAlEhhB,EAAK,EAAGw9B,EAAKR,EAAOlnC,OAAS,EAAGijB,EAAKikB,EAAOh9B,GAAK0gB,EAAKsc,EAAOQ,EAOjE,OANSzkB,GAAL2H,IACFM,EAAKhhB,EAAIA,EAAKw9B,EAAIA,EAAKxc,EACvBA,EAAKjI,EAAIA,EAAK2H,EAAIA,EAAKM,GAEzBgc,EAAOh9B,GAAMu9B,EAAKnuB,MAAM2J,GACxBikB,EAAOQ,GAAMD,EAAK/xB,KAAKkV,GAChBsc,EAET,QAASS,IAAkBjvB,GACzB,MAAOA,IACLY,MAAO,SAAS/Z,GACd,MAAOgP,MAAK+K,MAAM/Z,EAAImZ,GAAQA,GAEhChD,KAAM,SAASnW,GACb,MAAOgP,MAAKmH,KAAKnW,EAAImZ,GAAQA,IAE7BkvB,GAMN,QAASC,IAAoBX,EAAQjuB,EAAOsuB,EAAejjB,GACzD,GAAIhD,MAAQze,KAAQ6G,EAAI,EAAGpJ,EAAIiO,KAAKiD,IAAI01B,EAAOlnC,OAAQiZ,EAAMjZ,QAAU,CAKvE,KAJIknC,EAAO5mC,GAAK4mC,EAAO,KACrBA,EAASA,EAAO1lC,QAAQsV,UACxBmC,EAAQA,EAAMzX,QAAQsV,aAEfpN,GAAKpJ,GACZghB,EAAEzf,KAAK0lC,EAAcL,EAAOx9B,EAAI,GAAIw9B,EAAOx9B,KAC3C7G,EAAEhB,KAAKyiB,EAAYrL,EAAMvP,EAAI,GAAIuP,EAAMvP,IAEzC,OAAO,UAASnK,GACd,GAAImK,GAAIxF,GAAG4jC,OAAOZ,EAAQ3nC,EAAG,EAAGe,GAAK,CACrC,OAAOuC,GAAE6G,GAAG4X,EAAE5X,GAAGnK,KAMrB,QAASwoC,IAAgBb,EAAQjuB,EAAOqL,EAAa0jB,GAEnD,QAASC,KACP,GAAIC,GAAS35B,KAAKiD,IAAI01B,EAAOlnC,OAAQiZ,EAAMjZ,QAAU,EAAI6nC,GAAsBP,GAAmBC,EAAgBS,EAAQ1G,GAAwBD,EAGlJ,OAFA1P,GAASuW,EAAOhB,EAAQjuB,EAAOsuB,EAAejjB,GAC9C6jB,EAAQD,EAAOjvB,EAAOiuB,EAAQK,EAAelK,IACtCtnB,EAET,QAASA,GAAMxW,GACb,MAAOoyB,GAAOpyB,GARhB,GAAIoyB,GAAQwW,CAiDZ,OAvCApyB,GAAMkO,OAAS,SAAS1W,GACtB,MAAO46B,GAAM56B,IAEfwI,EAAMmxB,OAAS,SAAS3nC,GACtB,MAAKQ,WAAUC,QACfknC,EAAS3nC,EAAE2H,IAAIkhC,QACRH,KAFuBf,GAIhCnxB,EAAMkD,MAAQ,SAAS1Z,GACrB,MAAKQ,WAAUC,QACfiZ,EAAQ1Z,EACD0oC,KAFuBhvB,GAIhClD,EAAMsyB,WAAa,SAAS9oC,GAC1B,MAAOwW,GAAMkD,MAAM1Z,GAAG+kB,YAAY0b,KAEpCjqB,EAAMiyB,MAAQ,SAASzoC,GACrB,MAAKQ,WAAUC,QACfgoC,EAAQzoC,EACD0oC,KAFuBD,GAIhCjyB,EAAMuO,YAAc,SAAS/kB,GAC3B,MAAKQ,WAAUC,QACfskB,EAAc/kB,EACP0oC,KAFuB3jB,GAIhCvO,EAAMuyB,MAAQ,SAAS3+B,GACrB,MAAO4+B,IAAqBrB,EAAQv9B,IAEtCoM,EAAMyyB,WAAa,SAAS7+B,EAAG8H,GAC7B,MAAOg3B,IAA0BvB,EAAQv9B,EAAG8H,IAE9CsE,EAAM0xB,KAAO,SAAS99B,GAEpB,MADA++B,IAAoBxB,EAAQv9B,GACrBs+B,KAETlyB,EAAM4yB,KAAO,WACX,MAAOZ,IAAgBb,EAAQjuB,EAAOqL,EAAa0jB,IAE9CC,IAET,QAASW,IAAsB7yB,EAAOmyB,GACpC,MAAOhkC,IAAGiQ,OAAO4B,EAAOmyB,EAAQ,QAAS,aAAc,cAAe,SAExE,QAASQ,IAAoBxB,EAAQv9B,GACnC,MAAO69B,IAAcN,EAAQS,GAAkBkB,GAAyB3B,EAAQv9B,GAAG,KAErF,QAASk/B,IAAyB3B,EAAQv9B,GAC/B,MAALA,IAAWA,EAAI,GACnB,IAAIkvB,GAASoO,GAAeC,GAAS4B,EAAOjQ,EAAO,GAAKA,EAAO,GAAIngB,EAAOnK,KAAK2C,IAAI,GAAI3C,KAAK+K,MAAM/K,KAAKoH,IAAImzB,EAAOn/B,GAAK4E,KAAKqH,OAAQmzB,EAAMp/B,EAAIm/B,EAAOpwB,CAKrJ,OAJW,KAAPqwB,EAAYrwB,GAAQ,GAAoB,KAAPqwB,EAAYrwB,GAAQ,EAAmB,KAAPqwB,IAAYrwB,GAAQ,GACzFmgB,EAAO,GAAKtqB,KAAKmH,KAAKmjB,EAAO,GAAKngB,GAAQA,EAC1CmgB,EAAO,GAAKtqB,KAAK+K,MAAMuf,EAAO,GAAKngB,GAAQA,EAAc,GAAPA,EAClDmgB,EAAO,GAAKngB,EACLmgB,EAET,QAAS0P,IAAqBrB,EAAQv9B,GACpC,MAAOzF,IAAG+U,MAAM1W,MAAM2B,GAAI2kC,GAAyB3B,EAAQv9B,IAE7D,QAAS8+B,IAA0BvB,EAAQv9B,EAAG8H,GAC5C,GAAIwH,GAAQ4vB,GAAyB3B,EAAQv9B,EAC7C,IAAI8H,EAAQ,CACV,GAAIzG,GAAQiM,GAAarF,KAAKH,EAE9B,IADAzG,EAAMwb,QACW,MAAbxb,EAAM,GAAY,CACpB,GAAIwM,GAAStT,GAAGgU,aAAa3J,KAAK+C,IAAIwE,GAAImD,EAAM,IAAKnD,GAAImD,EAAM,KAI/D,OAHKjO,GAAM,KAAIA,EAAM,GAAK,IAAMg+B,GAAyBxxB,EAAOzB,MAAMkD,EAAM,MAC5EjO,EAAM,GAAK,IACXyG,EAASvN,GAAGuN,OAAOzG,EAAM+L,KAAK,KACvB,SAAS3W,GACd,MAAOqR,GAAO+F,EAAOzB,MAAM3V,IAAMoX,EAAOxB,QAGvChL,EAAM,KAAIA,EAAM,GAAK,IAAMi+B,GAA+Bj+B,EAAM,GAAIiO,IACzExH,EAASzG,EAAM+L,KAAK,QAEpBtF,GAAS,KAAOu3B,GAAyB/vB,EAAM,IAAM,GAEvD,OAAO/U,IAAGuN,OAAOA,GASnB,QAASu3B,IAAyBloC,GAChC,OAAQyN,KAAK+K,MAAM/K,KAAKoH,IAAI7U,GAASyN,KAAKqH,KAAO,KAEnD,QAASqzB,IAA+BnkC,EAAMmU,GAC5C,GAAIxD,GAAIuzB,GAAyB/vB,EAAM,GACvC,OAAOnU,KAAQokC,IAAmC36B,KAAKuH,IAAIL,EAAIuzB,GAAyBz6B,KAAK+C,IAAIwE,GAAImD,EAAM,IAAKnD,GAAImD,EAAM,UAAoB,MAATnU,GAAgB2Q,EAAqB,GAAP,MAAT3Q,GAK5J,QAASqkC,IAAajB,EAAQkB,EAAMC,EAAUnC,GAC5C,QAASvxB,GAAIpW,GACX,OAAQ8pC,EAAW96B,KAAKoH,IAAQ,EAAJpW,EAAQ,EAAIA,IAAMgP,KAAKoH,IAAIpW,EAAI,EAAI,GAAKA,IAAMgP,KAAKoH,IAAIyzB,GAErF,QAASl4B,GAAI3R,GACX,MAAO8pC,GAAW96B,KAAK2C,IAAIk4B,EAAM7pC,IAAMgP,KAAK2C,IAAIk4B,GAAO7pC,GAEzD,QAASwW,GAAMxW,GACb,MAAO2oC,GAAOvyB,EAAIpW,IAmDpB,MAjDAwW,GAAMkO,OAAS,SAAS1kB,GACtB,MAAO2R,GAAIg3B,EAAOjkB,OAAO1kB,KAE3BwW,EAAMmxB,OAAS,SAAS3nC,GACtB,MAAKQ,WAAUC,QACfqpC,EAAW9pC,EAAE,IAAM,EACnB2oC,EAAOhB,QAAQA,EAAS3nC,EAAE2H,IAAIkhC,SAASlhC,IAAIyO,IACpCI,GAHuBmxB,GAKhCnxB,EAAMqzB,KAAO,SAASloC,GACpB,MAAKnB,WAAUC,QACfopC,GAAQloC,EACRgnC,EAAOhB,OAAOA,EAAOhgC,IAAIyO,IAClBI,GAHuBqzB,GAKhCrzB,EAAM0xB,KAAO,WACX,GAAI6B,GAAQ9B,GAAcN,EAAOhgC,IAAIyO,GAAM0zB,EAAW96B,KAAOg7B,GAG7D,OAFArB,GAAOhB,OAAOoC,GACdpC,EAASoC,EAAMpiC,IAAIgK,GACZ6E,GAETA,EAAMuyB,MAAQ,WACZ,GAAIzP,GAASoO,GAAeC,GAASoB,KAAYhnB,EAAIuX,EAAO,GAAIrpB,EAAIqpB,EAAO,GAAIh2B,EAAI0L,KAAK+K,MAAM3D,EAAI2L,IAAK5X,EAAI6E,KAAKmH,KAAKC,EAAInG,IAAK1M,EAAIsmC,EAAO,EAAI,EAAIA,CACjJ,IAAIz0B,SAASjL,EAAI7G,GAAI,CACnB,GAAIwmC,EAAU,CACZ,KAAU3/B,EAAJ7G,EAAOA,IAAK,IAAK,GAAIvC,GAAI,EAAOwC,EAAJxC,EAAOA,IAAKgoC,EAAMzmC,KAAKqP,EAAIrO,GAAKvC,EAClEgoC,GAAMzmC,KAAKqP,EAAIrO,QAGf,KADAylC,EAAMzmC,KAAKqP,EAAIrO,IACTA,IAAM6G,GAAK,IAAK,GAAIpJ,GAAIwC,EAAI,EAAGxC,EAAI,EAAGA,IAAKgoC,EAAMzmC,KAAKqP,EAAIrO,GAAKvC,EAEvE,KAAKuC,EAAI,EAAGylC,EAAMzlC,GAAKye,EAAGze,KAC1B,IAAK6G,EAAI4+B,EAAMtoC,OAAQsoC,EAAM5+B,EAAI,GAAK8F,EAAG9F,KACzC4+B,EAAQA,EAAM9mC,MAAMqB,EAAG6G,GAEzB,MAAO4+B,IAETvyB,EAAMyyB,WAAa,SAAS1lC,EAAG2O,GAC7B,IAAK1R,UAAUC,OAAQ,MAAOwpC,GAC1BzpC,WAAUC,OAAS,EAAGyR,EAAS+3B,GAA+C,kBAAX/3B,KAAuBA,EAASvN,GAAGuN,OAAOA,GACjH,IACanN,GADThE,EAAIiO,KAAK+C,IAAI,GAAIxO,EAAIiT,EAAMuyB,QAAQtoC,QAASqN,EAAIg8B,GAAY/kC,EAAI,MAAOiK,KAAKmH,OAASpR,EAAI,OAC7FiK,KAAK+K,MACL,OAAO,UAASlZ,GACd,MAAOA,GAAI8Q,EAAI7D,EAAEsI,EAAIvV,GAAKkE,KAAOhE,EAAImR,EAAOrR,GAAK,KAGrD2V,EAAM4yB,KAAO,WACX,MAAOQ,IAAajB,EAAOS,OAAQS,EAAMC,EAAUnC,IAE9C0B,GAAsB7yB,EAAOmyB,GAatC,QAASuB,IAAavB,EAAQvwB,EAAUuvB,GAEtC,QAASnxB,GAAMxW,GACb,MAAO2oC,GAAOwB,EAAKnqC,IAFrB,GAAImqC,GAAOC,GAAgBhyB,GAAWiyB,EAAOD,GAAgB,EAAIhyB,EA+BjE,OA3BA5B,GAAMkO,OAAS,SAAS1kB,GACtB,MAAOqqC,GAAK1B,EAAOjkB,OAAO1kB,KAE5BwW,EAAMmxB,OAAS,SAAS3nC,GACtB,MAAKQ,WAAUC,QACfkoC,EAAOhB,QAAQA,EAAS3nC,EAAE2H,IAAIkhC,SAASlhC,IAAIwiC,IACpC3zB,GAFuBmxB,GAIhCnxB,EAAMuyB,MAAQ,SAAS3+B,GACrB,MAAO4+B,IAAqBrB,EAAQv9B,IAEtCoM,EAAMyyB,WAAa,SAAS7+B,EAAG8H,GAC7B,MAAOg3B,IAA0BvB,EAAQv9B,EAAG8H,IAE9CsE,EAAM0xB,KAAO,SAAS99B,GACpB,MAAOoM,GAAMmxB,OAAOwB,GAAoBxB,EAAQv9B,KAElDoM,EAAM4B,SAAW,SAASpY,GACxB,MAAKQ,WAAUC,QACf0pC,EAAOC,GAAgBhyB,EAAWpY,GAClCqqC,EAAOD,GAAgB,EAAIhyB,GAC3BuwB,EAAOhB,OAAOA,EAAOhgC,IAAIwiC,IAClB3zB,GAJuB4B,GAMhC5B,EAAM4yB,KAAO,WACX,MAAOc,IAAavB,EAAOS,OAAQhxB,EAAUuvB,IAExC0B,GAAsB7yB,EAAOmyB,GAEtC,QAASyB,IAAgBrlC,GACvB,MAAO,UAAS/E,GACd,MAAW,GAAJA,GAASgP,KAAK2C,KAAK3R,EAAG+E,GAAKiK,KAAK2C,IAAI3R,EAAG+E,IAYlD,QAASulC,IAAiB3C,EAAQ4C,GAEhC,QAAS/zB,GAAMxW,GACb,MAAO0Z,KAAQ6kB,EAAMl6B,IAAIrE,KAAoB,UAAbuqC,EAAO30B,EAAgB2oB,EAAM95B,IAAIzE,EAAG2nC,EAAOrlC,KAAKtC,UAAc,GAAK0Z,EAAMjZ,QAE3G,QAAS+pC,GAAM9kB,EAAOvM,GACpB,MAAOxU,IAAG+U,MAAMiuB,EAAOlnC,QAAQkH,IAAI,SAASrE,GAC1C,MAAOoiB,GAAQvM,EAAO7V,IAN1B,GAAIi7B,GAAO7kB,EAAO+wB,CAsFlB,OA7EAj0B,GAAMmxB,OAAS,SAAS3nC,GACtB,IAAKQ,UAAUC,OAAQ,MAAOknC,EAC9BA,MACApJ,EAAQ,GAAI98B,EAEZ,KADA,GAA0BipC,GAAtBpnC,EAAI,GAAIC,EAAIvD,EAAES,SACT6C,EAAIC,GAAQg7B,EAAMoM,IAAID,EAAK1qC,EAAEsD,KAAKi7B,EAAM95B,IAAIimC,EAAI/C,EAAOrlC,KAAKooC,GACrE,OAAOl0B,GAAM+zB,EAAO30B,GAAG5S,MAAMwT,EAAO+zB,EAAO1qC,IAE7C2W,EAAMkD,MAAQ,SAAS1Z,GACrB,MAAKQ,WAAUC,QACfiZ,EAAQ1Z,EACRyqC,EAAY,EACZF,GACE30B,EAAG,QACH/V,EAAGW,WAEEgW,GAPuBkD,GAShClD,EAAMo0B,YAAc,SAAS5qC,EAAG0N,GAC1BlN,UAAUC,OAAS,IAAGiN,EAAU,EACpC,IAAIgY,GAAQ1lB,EAAE,GAAI4nC,EAAO5nC,EAAE,GAAImZ,EAAOwuB,EAAOlnC,OAAS,GAAKilB,GAASA,EAAQkiB,GAAQ,EACpF,IAAMA,EAAOliB,IAAUiiB,EAAOlnC,OAAS,EAAIiN,EAO3C,OANAgM,GAAQ8wB,EAAM9kB,EAAQvM,EAAOzL,EAAU,EAAGyL,GAC1CsxB,EAAY,EACZF,GACE30B,EAAG,cACH/V,EAAGW,WAEEgW,GAETA,EAAMq0B,iBAAmB,SAAS7qC,EAAG0N,GAC/BlN,UAAUC,OAAS,IAAGiN,EAAU,EACpC,IAAIgY,GAAQ1lB,EAAE,GAAI4nC,EAAO5nC,EAAE,GAAImZ,EAAOwuB,EAAOlnC,OAAS,GAAKilB,EAAQkiB,EAAO54B,KAAKqB,OAAOqV,EAAQkiB,GAAQ,GACtG,IAAMA,EAAOliB,IAAUiiB,EAAOlnC,OAAS,EAAIiN,GAAW,CAOtD,OANAgM,GAAQ8wB,EAAM9kB,EAAQ1W,KAAKqB,MAAM8I,EAAOzL,EAAU,GAAKk6B,EAAOliB,GAASiiB,EAAOlnC,OAAS,EAAIiN,GAAWyL,GAAQ,GAAIA,GAClHsxB,EAAY,EACZF,GACE30B,EAAG,mBACH/V,EAAGW,WAEEgW,GAETA,EAAMs0B,WAAa,SAAS9qC,EAAG0N,EAASq9B,GAClCvqC,UAAUC,OAAS,IAAGiN,EAAU,GAChClN,UAAUC,OAAS,IAAGsqC,EAAer9B,EACzC,IAAI6J,GAAUvX,EAAE,GAAKA,EAAE,GAAI0lB,EAAQ1lB,EAAEuX,EAAU,GAAIqwB,EAAO5nC,EAAE,EAAIuX,GAAU4B,GAAQyuB,EAAOliB,IAAUiiB,EAAOlnC,OAASiN,EAAU,EAAIq9B,EAQjI,OAPArxB,GAAQ8wB,EAAM9kB,EAAQvM,EAAO4xB,EAAc5xB,GACvC5B,GAASmC,EAAMnC,UACnBkzB,EAAYtxB,GAAQ,EAAIzL,GACxB68B,GACE30B,EAAG,aACH/V,EAAGW,WAEEgW,GAETA,EAAMw0B,gBAAkB,SAAShrC,EAAG0N,EAASq9B,GACvCvqC,UAAUC,OAAS,IAAGiN,EAAU,GAChClN,UAAUC,OAAS,IAAGsqC,EAAer9B,EACzC,IAAI6J,GAAUvX,EAAE,GAAKA,EAAE,GAAI0lB,EAAQ1lB,EAAEuX,EAAU,GAAIqwB,EAAO5nC,EAAE,EAAIuX,GAAU4B,EAAOnK,KAAK+K,OAAO6tB,EAAOliB,IAAUiiB,EAAOlnC,OAASiN,EAAU,EAAIq9B,GAQ5I,OAPArxB,GAAQ8wB,EAAM9kB,EAAQ1W,KAAKqB,OAAOu3B,EAAOliB,GAASiiB,EAAOlnC,OAASiN,GAAWyL,GAAQ,GAAIA,GACrF5B,GAASmC,EAAMnC,UACnBkzB,EAAYz7B,KAAKqB,MAAM8I,GAAQ,EAAIzL,IACnC68B,GACE30B,EAAG,kBACH/V,EAAGW,WAEEgW,GAETA,EAAMi0B,UAAY,WAChB,MAAOA,IAETj0B,EAAMsxB,YAAc,WAClB,MAAOJ,IAAe6C,EAAO1qC,EAAE,KAEjC2W,EAAM4yB,KAAO,WACX,MAAOkB,IAAiB3C,EAAQ4C,IAE3B/zB,EAAMmxB,OAAOA,GAqBtB,QAASsD,IAAkBtD,EAAQjuB,GAEjC,QAASgvB,KACP,GAAI3nC,GAAI,EAAGgqB,EAAIrR,EAAMjZ,MAErB,KADAyqC,OACSnqC,EAAIgqB,GAAGmgB,EAAWnqC,EAAI,GAAK4D,GAAGwmC,SAASxD,EAAQ5mC,EAAIgqB,EAC5D,OAAOvU,GAET,QAASA,GAAMxW,GACb,MAAKE,OAAMF,GAAKA,GAAhB,OAA2B0Z,EAAM/U,GAAG4jC,OAAO2C,EAAYlrC,IARzD,GAAIkrC,EA8BJ,OApBA10B,GAAMmxB,OAAS,SAAS3nC,GACtB,MAAKQ,WAAUC,QACfknC,EAAS3nC,EAAE2H,IAAI5H,GAAW4L,OAAO1L,GAAYqlB,KAAK1lB,GAC3C8oC,KAFuBf,GAIhCnxB,EAAMkD,MAAQ,SAAS1Z,GACrB,MAAKQ,WAAUC,QACfiZ,EAAQ1Z,EACD0oC,KAFuBhvB,GAIhClD,EAAM40B,UAAY,WAChB,MAAOF,IAET10B,EAAM60B,aAAe,SAASr9B,GAE5B,MADAA,GAAI0L,EAAMpV,QAAQ0J,GACP,EAAJA,aAAyBA,EAAI,EAAIk9B,EAAWl9B,EAAI,GAAK25B,EAAO,GAAI35B,EAAIk9B,EAAWzqC,OAASyqC,EAAWl9B,GAAK25B,EAAOA,EAAOlnC,OAAS,KAExI+V,EAAM4yB,KAAO,WACX,MAAO6B,IAAkBtD,EAAQjuB,IAE5BgvB,IAKT,QAAS4C,IAAkB5nB,EAAI2H,EAAI3R,GAEjC,QAASlD,GAAMxW,GACb,MAAO0Z,GAAM1K,KAAK+C,IAAI,EAAG/C,KAAKiD,IAAI3O,EAAG0L,KAAK+K,MAAM8mB,GAAM7gC,EAAI0jB,OAE5D,QAASglB,KAGP,MAFA7H,GAAKnnB,EAAMjZ,QAAU4qB,EAAK3H,GAC1BpgB,EAAIoW,EAAMjZ,OAAS,EACZ+V,EAPT,GAAIqqB,GAAIv9B,CA4BR,OAnBAkT,GAAMmxB,OAAS,SAAS3nC,GACtB,MAAKQ,WAAUC,QACfijB,GAAM1jB,EAAE,GACRqrB,GAAMrrB,EAAEA,EAAES,OAAS,GACZioC,MAHyBhlB,EAAI2H,IAKtC7U,EAAMkD,MAAQ,SAAS1Z,GACrB,MAAKQ,WAAUC,QACfiZ,EAAQ1Z,EACD0oC,KAFuBhvB,GAIhClD,EAAM60B,aAAe,SAASr9B,GAG5B,MAFAA,GAAI0L,EAAMpV,QAAQ0J,GAClBA,EAAQ,EAAJA,MAAcA,EAAI6yB,EAAKnd,GAClB1V,EAAGA,EAAI,EAAI6yB,IAEtBrqB,EAAM4yB,KAAO,WACX,MAAOkC,IAAkB5nB,EAAI2H,EAAI3R,IAE5BgvB,IAKT,QAAS6C,IAAmB5D,EAAQjuB,GAClC,QAASlD,GAAMxW,GACb,MAASA,IAALA,EAAe0Z,EAAM/U,GAAG4jC,OAAOZ,EAAQ3nC,IAA3C,OAmBF,MAjBAwW,GAAMmxB,OAAS,SAAShmC,GACtB,MAAKnB,WAAUC,QACfknC,EAAShmC,EACF6U,GAFuBmxB,GAIhCnxB,EAAMkD,MAAQ,SAAS/X,GACrB,MAAKnB,WAAUC,QACfiZ,EAAQ/X,EACD6U,GAFuBkD,GAIhClD,EAAM60B,aAAe,SAASr9B,GAE5B,MADAA,GAAI0L,EAAMpV,QAAQ0J,IACT25B,EAAO35B,EAAI,GAAI25B,EAAO35B,KAEjCwI,EAAM4yB,KAAO,WACX,MAAOmC,IAAmB5D,EAAQjuB,IAE7BlD,EAKT,QAASg1B,IAAkB7D,GACzB,QAAS8D,GAASzrC,GAChB,OAAQA,EAiBV,MAfAyrC,GAAS/mB,OAAS+mB,EAClBA,EAAS9D,OAAS8D,EAAS/xB,MAAQ,SAAS1Z,GAC1C,MAAKQ,WAAUC,QACfknC,EAAS3nC,EAAE2H,IAAI8jC,GACRA,GAFuB9D,GAIhC8D,EAAS1C,MAAQ,SAAS3+B,GACxB,MAAO4+B,IAAqBrB,EAAQv9B,IAEtCqhC,EAASxC,WAAa,SAAS7+B,EAAG8H,GAChC,MAAOg3B,IAA0BvB,EAAQv9B,EAAG8H,IAE9Cu5B,EAASrC,KAAO,WACd,MAAOoC,IAAkB7D,IAEpB8D,EAGT,QAASC,MACP,MAAO,GA0HT,QAASC,IAAsB9qC,GAC7B,MAAOA,GAAE+qC,YAEX,QAASC,IAAsBhrC,GAC7B,MAAOA,GAAEirC,YAEX,QAASC,IAAqBlrC,GAC5B,MAAOA,GAAEmrC,WAEX,QAASC,IAAmBprC,GAC1B,MAAOA,GAAEqrC,SAEX,QAASC,IAAmBtrC,GAC1B,MAAOA,IAAKA,EAAEurC,SAEhB,QAASC,IAAgB3oB,EAAIF,EAAI6H,EAAIC,GACnC,OAAQ5H,EAAK2H,GAAM7H,GAAMA,EAAK8H,GAAM5H,EAAK,EAAI,EAAI,EAEnD,QAAS4oB,IAAyBnnB,EAAIC,EAAIwb,EAAI2L,EAAIC,GAChD,GAAIC,GAAMtnB,EAAG,GAAKC,EAAG,GAAIsnB,EAAMvnB,EAAG,GAAKC,EAAG,GAAI9kB,GAAMksC,EAAKD,GAAMA,GAAMv9B,KAAKyC,KAAKg7B,EAAMA,EAAMC,EAAMA,GAAMC,EAAKrsC,EAAKosC,EAAKE,GAAMtsC,EAAKmsC,EAAKphB,EAAKlG,EAAG,GAAKwnB,EAAIrhB,EAAKnG,EAAG,GAAKynB,EAAIlc,EAAKtL,EAAG,GAAKunB,EAAIhc,EAAKvL,EAAG,GAAKwnB,EAAIhX,GAAMvK,EAAKqF,GAAM,EAAGqF,GAAMzK,EAAKqF,GAAM,EAAGhF,EAAK+E,EAAKrF,EAAIO,EAAK+E,EAAKrF,EAAIgF,EAAK3E,EAAKA,EAAKC,EAAKA,EAAIhb,EAAIgwB,EAAK2L,EAAIM,EAAIxhB,EAAKsF,EAAKD,EAAKpF,EAAIzqB,GAAU,EAAL+qB,EAAS,GAAK,GAAK5c,KAAKyC,KAAKb,EAAIA,EAAI0f,EAAKuc,EAAIA,GAAIC,GAAOD,EAAIjhB,EAAKD,EAAK9qB,GAAKyvB,EAAImD,IAAQoZ,EAAIlhB,EAAKC,EAAK/qB,GAAKyvB,EAAIyc,GAAOF,EAAIjhB,EAAKD,EAAK9qB,GAAKyvB,EAAIqD,IAAQkZ,EAAIlhB,EAAKC,EAAK/qB,GAAKyvB,EAAI0c,EAAMF,EAAMlX,EAAIqX,EAAMxZ,EAAMsC,EAAImX,EAAMH,EAAMnX,EAAIuX,EAAMxZ,EAAMoC,CAEvjB,OADIiX,GAAMA,EAAMC,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,IAAKL,EAAMC,EAAKtZ,EAAME,KACzDmZ,EAAMH,EAAIlZ,EAAMmZ,IAAQE,EAAMlM,EAAKhwB,EAAG6iB,EAAMmN,EAAKhwB,IAE9D,QAASw8B,IAAYhc,GAEnB,QAAS/K,GAAK1c,GAEZ,QAASub,KACPL,EAASviB,KAAK,IAAKyiB,EAAYqM,EAAW3L,GAAS4nB,IAErD,IAJA,GAAyDxsC,GAArDgkB,KAAeY,KAAaniB,EAAI,GAAIC,EAAIoG,EAAKlJ,OAAW66B,EAAK1oB,GAAW5S,GAAIu7B,EAAK3oB,GAAW5E,KAIvF1K,EAAIC,GACP+pC,EAAQhiC,KAAK5J,KAAMb,EAAI8I,EAAKrG,GAAIA,GAClCmiB,EAAOnjB,OAAQg5B,EAAGhwB,KAAK5J,KAAMb,EAAGyC,IAAKi4B,EAAGjwB,KAAK5J,KAAMb,EAAGyC,KAC7CmiB,EAAOhlB,SAChBykB,IACAO,KAIJ,OADIA,GAAOhlB,QAAQykB,IACZL,EAASpkB,OAASokB,EAASrN,KAAK,IAAM,KAf/C,GAAIxX,GAAIo1B,GAAgBpnB,EAAIqnB,GAAgBiY,EAAU3oB,GAASI,EAAcwoB,GAAmBC,EAAiBzoB,EAAY5jB,IAAKksC,EAAU,EA0C5I,OAzBAhnB,GAAKrmB,EAAI,SAAS2B,GAChB,MAAKnB,WAAUC,QACfT,EAAI2B,EACG0kB,GAFuBrmB,GAIhCqmB,EAAKrY,EAAI,SAASrM,GAChB,MAAKnB,WAAUC,QACfuN,EAAIrM,EACG0kB,GAFuBrY,GAIhCqY,EAAKinB,QAAU,SAAS3rC,GACtB,MAAKnB,WAAUC,QACf6sC,EAAU3rC,EACH0kB,GAFuBinB,GAIhCjnB,EAAKtB,YAAc,SAASpjB,GAC1B,MAAKnB,WAAUC,QACc+sC,EAAZ,kBAAN7rC,GAAmCojB,EAAcpjB,GAA0BojB,EAAc0oB,GAAyBppC,IAAI1C,IAAM4rC,IAAmBpsC,IACnJklB,GAFuBmnB,GAIhCnnB,EAAKgnB,QAAU,SAAS1rC,GACtB,MAAKnB,WAAUC,QACf4sC,EAAU1rC,EACH0kB,GAFuBgnB,GAIzBhnB,EAwBT,QAASknB,IAAkB9nB,GACzB,MAAOA,GAAOjO,KAAK,KAErB,QAASk2B,IAAwBjoB,GAC/B,MAAO8nB,IAAkB9nB,GAAU,IAErC,QAASkoB,IAAgBloB,GAEvB,IADA,GAAIniB,GAAI,EAAGC,EAAIkiB,EAAOhlB,OAAQyV,EAAIuP,EAAO,GAAImoB,GAAS13B,EAAE,GAAI,IAAKA,EAAE,MAC1D5S,EAAIC,GAAGqqC,EAAKtrC,KAAK,KAAM4T,EAAE,IAAMA,EAAIuP,EAAOniB,IAAI,IAAM,EAAG,IAAK4S,EAAE,GAEvE,OADI3S,GAAI,GAAGqqC,EAAKtrC,KAAK,IAAK4T,EAAE,IACrB03B,EAAKp2B,KAAK,IAEnB,QAASq2B,IAAsBpoB,GAE7B,IADA,GAAIniB,GAAI,EAAGC,EAAIkiB,EAAOhlB,OAAQyV,EAAIuP,EAAO,GAAImoB,GAAS13B,EAAE,GAAI,IAAKA,EAAE,MAC1D5S,EAAIC,GAAGqqC,EAAKtrC,KAAK,KAAM4T,EAAIuP,EAAOniB,IAAI,GAAI,IAAK4S,EAAE,GAC1D,OAAO03B,GAAKp2B,KAAK,IAEnB,QAASs2B,IAAqBroB,GAE5B,IADA,GAAIniB,GAAI,EAAGC,EAAIkiB,EAAOhlB,OAAQyV,EAAIuP,EAAO,GAAImoB,GAAS13B,EAAE,GAAI,IAAKA,EAAE,MAC1D5S,EAAIC,GAAGqqC,EAAKtrC,KAAK,KAAM4T,EAAIuP,EAAOniB,IAAI,GAAI,IAAK4S,EAAE,GAC1D,OAAO03B,GAAKp2B,KAAK,IAEnB,QAASu2B,IAAwBtoB,EAAQ4nB,GACvC,MAAO5nB,GAAOhlB,OAAS,EAAI8sC,GAAkB9nB,GAAUA,EAAO,GAAKuoB,GAAmBvoB,EAAOxjB,MAAM,EAAG,IAAKgsC,GAA4BxoB,EAAQ4nB,IAEjJ,QAASa,IAA0BzoB,EAAQ4nB,GACzC,MAAO5nB,GAAOhlB,OAAS,EAAI8sC,GAAkB9nB,GAAUA,EAAO,GAAKuoB,IAAoBvoB,EAAOnjB,KAAKmjB,EAAO,IAC1GA,GAASwoB,IAA8BxoB,EAAOA,EAAOhlB,OAAS,IAAK8D,OAAOkhB,GAAUA,EAAO,KAAO4nB,IAEpG,QAASc,IAAoB1oB,EAAQ4nB,GACnC,MAAO5nB,GAAOhlB,OAAS,EAAI8sC,GAAkB9nB,GAAUA,EAAO,GAAKuoB,GAAmBvoB,EAAQwoB,GAA4BxoB,EAAQ4nB,IAEpI,QAASW,IAAmBvoB,EAAQ2oB,GAClC,GAAIA,EAAS3tC,OAAS,GAAKglB,EAAOhlB,QAAU2tC,EAAS3tC,QAAUglB,EAAOhlB,QAAU2tC,EAAS3tC,OAAS,EAChG,MAAO8sC,IAAkB9nB,EAE3B,IAAI0d,GAAO1d,EAAOhlB,QAAU2tC,EAAS3tC,OAAQmtC,EAAO,GAAIzoB,EAAKM,EAAO,GAAIvP,EAAIuP,EAAO,GAAI5P,EAAKu4B,EAAS,GAAIx4B,EAAIC,EAAIw4B,EAAK,CAMtH,IALIlL,IACFyK,GAAQ,KAAO13B,EAAE,GAAa,EAARL,EAAG,GAAS,GAAK,KAAOK,EAAE,GAAa,EAARL,EAAG,GAAS,GAAK,IAAMK,EAAE,GAAK,IAAMA,EAAE,GAC3FiP,EAAKM,EAAO,GACZ4oB,EAAK,GAEHD,EAAS3tC,OAAS,EAAG,CACvBmV,EAAIw4B,EAAS,GACbl4B,EAAIuP,EAAO4oB,GACXA,IACAT,GAAQ,KAAOzoB,EAAG,GAAKtP,EAAG,IAAM,KAAOsP,EAAG,GAAKtP,EAAG,IAAM,KAAOK,EAAE,GAAKN,EAAE,IAAM,KAAOM,EAAE,GAAKN,EAAE,IAAM,IAAMM,EAAE,GAAK,IAAMA,EAAE,EACzH,KAAK,GAAI5S,GAAI,EAAGA,EAAI8qC,EAAS3tC,OAAQ6C,IAAK+qC,IACxCn4B,EAAIuP,EAAO4oB,GACXz4B,EAAIw4B,EAAS9qC,GACbsqC,GAAQ,KAAO13B,EAAE,GAAKN,EAAE,IAAM,KAAOM,EAAE,GAAKN,EAAE,IAAM,IAAMM,EAAE,GAAK,IAAMA,EAAE,GAG7E,GAAIitB,EAAM,CACR,GAAImL,GAAK7oB,EAAO4oB,EAChBT,IAAQ,KAAO13B,EAAE,GAAY,EAAPN,EAAE,GAAS,GAAK,KAAOM,EAAE,GAAY,EAAPN,EAAE,GAAS,GAAK,IAAM04B,EAAG,GAAK,IAAMA,EAAG,GAE7F,MAAOV,GAET,QAASK,IAA4BxoB,EAAQ4nB,GAE3C,IADA,GAA0CloB,GAAtCipB,KAAevuC,GAAK,EAAIwtC,GAAW,EAAOjoB,EAAKK,EAAO,GAAI8oB,EAAK9oB,EAAO,GAAIniB,EAAI,EAAGC,EAAIkiB,EAAOhlB,SACvF6C,EAAIC,GACX4hB,EAAKC,EACLA,EAAKmpB,EACLA,EAAK9oB,EAAOniB,GACZ8qC,EAAS9rC,MAAOzC,GAAK0uC,EAAG,GAAKppB,EAAG,IAAKtlB,GAAK0uC,EAAG,GAAKppB,EAAG,KAEvD,OAAOipB,GAET,QAASI,IAAiB/oB,GACxB,GAAIA,EAAOhlB,OAAS,EAAG,MAAO8sC,IAAkB9nB,EAChD,IAAIniB,GAAI,EAAGC,EAAIkiB,EAAOhlB,OAAQ4tC,EAAK5oB,EAAO,GAAI/B,EAAK2qB,EAAG,GAAI7qB,EAAK6qB,EAAG,GAAItL,GAAOrf,EAAIA,EAAIA,GAAK2qB,EAAK5oB,EAAO,IAAI,IAAMud,GAAOxf,EAAIA,EAAIA,EAAI6qB,EAAG,IAAMT,GAASlqB,EAAI,IAAKF,EAAI,IAAKirB,GAAgBC,GAAyB3L,GAAK,IAAK0L,GAAgBC,GAAyB1L,GAEnQ,KADAvd,EAAOnjB,KAAKmjB,EAAOliB,EAAI,MACdD,GAAKC,GACZ8qC,EAAK5oB,EAAOniB,GACZy/B,EAAG9b,QACH8b,EAAGzgC,KAAK+rC,EAAG,IACXrL,EAAG/b,QACH+b,EAAG1gC,KAAK+rC,EAAG,IACXM,GAAuBf,EAAM7K,EAAIC,EAInC,OAFAvd,GAAOqB,MACP8mB,EAAKtrC,KAAK,IAAK+rC,GACRT,EAAKp2B,KAAK,IAEnB,QAASo3B,IAAqBnpB,GAC5B,GAAIA,EAAOhlB,OAAS,EAAG,MAAO8sC,IAAkB9nB,EAEhD,KADA,GAA0C4oB,GAAtCT,KAAWtqC,EAAI,GAAIC,EAAIkiB,EAAOhlB,OAAYsiC,GAAO,GAAKC,GAAO,KACxD1/B,EAAI,GACX+qC,EAAK5oB,EAAOniB,GACZy/B,EAAGzgC,KAAK+rC,EAAG,IACXrL,EAAG1gC,KAAK+rC,EAAG,GAIb,KAFAT,EAAKtrC,KAAKmsC,GAAgBC,GAAyB3L,GAAM,IAAM0L,GAAgBC,GAAyB1L,MACtG1/B,IACOA,EAAIC,GACX8qC,EAAK5oB,EAAOniB,GACZy/B,EAAG9b,QACH8b,EAAGzgC,KAAK+rC,EAAG,IACXrL,EAAG/b,QACH+b,EAAG1gC,KAAK+rC,EAAG,IACXM,GAAuBf,EAAM7K,EAAIC,EAEnC,OAAO4K,GAAKp2B,KAAK,IAEnB,QAASq3B,IAAuBppB,GAE9B,IADA,GAAImoB,GAA4CS,EAAtC/qC,EAAI,GAAIC,EAAIkiB,EAAOhlB,OAAQ2J,EAAI7G,EAAI,EAAOw/B,KAASC,OACpD1/B,EAAI,GACX+qC,EAAK5oB,EAAOniB,EAAIC,GAChBw/B,EAAGzgC,KAAK+rC,EAAG,IACXrL,EAAG1gC,KAAK+rC,EAAG,GAIb,KAFAT,GAASa,GAAgBC,GAAyB3L,GAAK,IAAK0L,GAAgBC,GAAyB1L,MACnG1/B,IACOA,EAAI8G,GACXikC,EAAK5oB,EAAOniB,EAAIC,GAChBw/B,EAAG9b,QACH8b,EAAGzgC,KAAK+rC,EAAG,IACXrL,EAAG/b,QACH+b,EAAG1gC,KAAK+rC,EAAG,IACXM,GAAuBf,EAAM7K,EAAIC,EAEnC,OAAO4K,GAAKp2B,KAAK,IAEnB,QAASs3B,IAAkBrpB,EAAQ4nB,GACjC,GAAI9pC,GAAIkiB,EAAOhlB,OAAS,CACxB,IAAI8C,EAEF,IADA,GAAkG2S,GAAGN,EAAjG8N,EAAK+B,EAAO,GAAG,GAAIjC,EAAKiC,EAAO,GAAG,GAAIkG,EAAKlG,EAAOliB,GAAG,GAAKmgB,EAAIkI,EAAKnG,EAAOliB,GAAG,GAAKigB,EAAIlgB,EAAI,KACrFA,GAAKC,GACZ2S,EAAIuP,EAAOniB,GACXsS,EAAItS,EAAIC,EACR2S,EAAE,GAAKm3B,EAAUn3B,EAAE,IAAM,EAAIm3B,IAAY3pB,EAAK9N,EAAI+V,GAClDzV,EAAE,GAAKm3B,EAAUn3B,EAAE,IAAM,EAAIm3B,IAAY7pB,EAAK5N,EAAIgW,EAGtD,OAAO4iB,IAAiB/oB,GAE1B,QAASgpB,IAAgB5uC,EAAGC,GAC1B,MAAOD,GAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAG5D,QAAS6uC,IAAuBf,EAAM5tC,EAAGgO,GACvC4/B,EAAKtrC,KAAK,IAAKmsC,GAAgBM,GAAyB/uC,GAAI,IAAKyuC,GAAgBM,GAAyB/gC,GAAI,IAAKygC,GAAgBO,GAAyBhvC,GAAI,IAAKyuC,GAAgBO,GAAyBhhC,GAAI,IAAKygC,GAAgBC,GAAyB1uC,GAAI,IAAKyuC,GAAgBC,GAAyB1gC,IAEpT,QAASihC,IAAiB9pB,EAAIC,GAC5B,OAAQA,EAAG,GAAKD,EAAG,KAAOC,EAAG,GAAKD,EAAG,IAEvC,QAAS+pB,IAA6BzpB,GAEpC,IADA,GAAIniB,GAAI,EAAG6G,EAAIsb,EAAOhlB,OAAS,EAAG2J,KAAQ+a,EAAKM,EAAO,GAAIL,EAAKK,EAAO,GAAI5kB,EAAIuJ,EAAE,GAAK6kC,GAAiB9pB,EAAIC,KACjG9hB,EAAI6G,GACXC,EAAE9G,IAAMzC,GAAKA,EAAIouC,GAAiB9pB,EAAKC,EAAIA,EAAKK,EAAOniB,EAAI,MAAQ,CAGrE,OADA8G,GAAE9G,GAAKzC,EACAuJ,EAET,QAAS+kC,IAA4B1pB,GAEnC,IADA,GAAmB5kB,GAAGhB,EAAGC,EAAGgF,EAAxBspC,KAA2BhkC,EAAI8kC,GAA6BzpB,GAASniB,EAAI,GAAI6G,EAAIsb,EAAOhlB,OAAS,IAC5F6C,EAAI6G,GACXtJ,EAAIouC,GAAiBxpB,EAAOniB,GAAImiB,EAAOniB,EAAI,IACvCiT,GAAI1V,GAAKmiB,GACX5Y,EAAE9G,GAAK8G,EAAE9G,EAAI,GAAK,GAElBzD,EAAIuK,EAAE9G,GAAKzC,EACXf,EAAIsK,EAAE9G,EAAI,GAAKzC,EACfiE,EAAIjF,EAAIA,EAAIC,EAAIA,EACZgF,EAAI,IACNA,EAAQ,EAAJjE,EAAQmO,KAAKyC,KAAK3M,GACtBsF,EAAE9G,GAAKwB,EAAIjF,EACXuK,EAAE9G,EAAI,GAAKwB,EAAIhF,GAKrB,KADAwD,EAAI,KACKA,GAAK6G,GACZrF,GAAK2gB,EAAOzW,KAAKiD,IAAI9H,EAAG7G,EAAI,IAAI,GAAKmiB,EAAOzW,KAAK+C,IAAI,EAAGzO,EAAI,IAAI,KAAO,GAAK,EAAI8G,EAAE9G,GAAK8G,EAAE9G,KACzF8qC,EAAS9rC,MAAOwC,GAAK,EAAGsF,EAAE9G,GAAKwB,GAAK,GAEtC,OAAOspC,GAET,QAASgB,IAAoB3pB,GAC3B,MAAOA,GAAOhlB,OAAS,EAAI8sC,GAAkB9nB,GAAUA,EAAO,GAAKuoB,GAAmBvoB,EAAQ0pB,GAA4B1pB,IAQ5H,QAAS4pB,IAAkB5pB,GAEzB,IADA,GAAIxY,GAAkC2D,EAAG/Q,EAA9ByD,EAAI,GAAIC,EAAIkiB,EAAOhlB,SACrB6C,EAAIC,GACX0J,EAAQwY,EAAOniB,GACfsN,EAAI3D,EAAM,GACVpN,EAAIoN,EAAM,GAAKkC,GACflC,EAAM,GAAK2D,EAAI5B,KAAK+B,IAAIlR,GACxBoN,EAAM,GAAK2D,EAAI5B,KAAKU,IAAI7P,EAE1B,OAAO4lB,GAET,QAAS6pB,IAAYle,GAEnB,QAASme,GAAK5lC,GAMZ,QAASub,KACPL,EAASviB,KAAK,IAAKyiB,EAAYqM,EAAWoe,GAAUnC,GAAUzyB,EAAG60B,EAAmBre,EAAWse,EAAQn4B,WAAY81B,GAAU,KAE/H,IARA,GAAwExsC,GAIpDb,EAAGgO,EAJnB6W,KAAe6qB,KAAcF,KAAclsC,EAAI,GAAIC,EAAIoG,EAAKlJ,OAAWkvC,EAAM/8B,GAAW8Q,GAAKksB,EAAMh9B,GAAW4Q,GAAKqsB,EAAMnsB,IAAO2H,EAAK,WACvI,MAAOrrB,IACL4S,GAAWyY,GAAKykB,EAAMtsB,IAAO8H,EAAK,WACpC,MAAOtd,IACL4E,GAAW0Y,KAINhoB,EAAIC,GACP+pC,EAAQhiC,KAAK5J,KAAMb,EAAI8I,EAAKrG,GAAIA,IAClCosC,EAAQptC,MAAOtC,GAAK2vC,EAAIrkC,KAAK5J,KAAMb,EAAGyC,GAAI0K,GAAK4hC,EAAItkC,KAAK5J,KAAMb,EAAGyC,KACjEksC,EAAQltC,OAAQutC,EAAIvkC,KAAK5J,KAAMb,EAAGyC,IAAKwsC,EAAIxkC,KAAK5J,KAAMb,EAAGyC,MAChDosC,EAAQjvC,SACjBykB,IACAwqB,KACAF,KAIJ,OADIE,GAAQjvC,QAAQykB,IACbL,EAASpkB,OAASokB,EAASrN,KAAK,IAAM,KArB/C,GAAIkM,GAAK0R,GAAgB/J,EAAK+J,GAAgB5R,EAAK,EAAG8H,EAAK+J,GAAgBiY,EAAU3oB,GAASI,EAAcwoB,GAAmBC,EAAiBzoB,EAAY5jB,IAAKsuC,EAAqB1qB,EAAanK,EAAI,IAAKyyB,EAAU,EAsEtN,OA/CAkC,GAAKvvC,EAAI,SAAS2B,GAChB,MAAKnB,WAAUC,QACfijB,EAAK2H,EAAK1pB,EACH4tC,GAFuBlkB,GAIhCkkB,EAAK7rB,GAAK,SAAS/hB,GACjB,MAAKnB,WAAUC,QACfijB,EAAK/hB;AACE4tC,GAFuB7rB,GAIhC6rB,EAAKlkB,GAAK,SAAS1pB,GACjB,MAAKnB,WAAUC,QACf4qB,EAAK1pB,EACE4tC,GAFuBlkB,GAIhCkkB,EAAKvhC,EAAI,SAASrM,GAChB,MAAKnB,WAAUC,QACf+iB,EAAK8H,EAAK3pB,EACH4tC,GAFuBjkB,GAIhCikB,EAAK/rB,GAAK,SAAS7hB,GACjB,MAAKnB,WAAUC,QACf+iB,EAAK7hB,EACE4tC,GAFuB/rB,GAIhC+rB,EAAKjkB,GAAK,SAAS3pB,GACjB,MAAKnB,WAAUC,QACf6qB,EAAK3pB,EACE4tC,GAFuBjkB,GAIhCikB,EAAKjC,QAAU,SAAS3rC,GACtB,MAAKnB,WAAUC,QACf6sC,EAAU3rC,EACH4tC,GAFuBjC,GAIhCiC,EAAKxqB,YAAc,SAASpjB,GAC1B,MAAKnB,WAAUC,QACc+sC,EAAZ,kBAAN7rC,GAAmCojB,EAAcpjB,GAA0BojB,EAAc0oB,GAAyBppC,IAAI1C,IAAM4rC,IAAmBpsC,IAC1JsuC,EAAqB1qB,EAAYxN,SAAWwN,EAC5CnK,EAAImK,EAAYlE,OAAS,IAAM,IACxB0uB,GAJuB/B,GAMhC+B,EAAKlC,QAAU,SAAS1rC,GACtB,MAAKnB,WAAUC,QACf4sC,EAAU1rC,EACH4tC,GAFuBlC,GAIzBkC,EAqET,QAASQ,IAAmBlvC,GAC1B,MAAOA,GAAEyoB,OAgCX,QAAS0mB,IAA0BnvC,GACjC,OAASA,EAAEb,EAAGa,EAAEmN,GASlB,QAASiiC,IAAgC7e,GACvC,MAAO,YACL,GAAIvwB,GAAIuwB,EAAWpuB,MAAMtB,KAAMlB,WAAYoQ,EAAI/P,EAAE,GAAIhB,EAAIgB,EAAE,GAAKsO,EAChE,QAASyB,EAAI5B,KAAK+B,IAAIlR,GAAI+Q,EAAI5B,KAAKU,IAAI7P,KAoB3C,QAASqwC,MACP,MAAO,IAET,QAASC,MACP,MAAO,SAET,QAASC,IAAoB5tC,GAC3B,GAAIoO,GAAI5B,KAAKyC,KAAKjP,EAAOuM,GACzB,OAAO,MAAQ6B,EAAI,IAAMA,EAAI,IAAMA,EAAI,aAAeA,EAAI,IAAMA,EAAI,IAAMA,EAAI,YAAcA,EAAI,IA+ClG,QAASy/B,IAAyBvpC,GAChC,MAAO,YACL,GAAIwpC,GAAMC,GACLD,EAAO5uC,KAAKoF,MAASypC,EAASD,EAAKA,EAAKC,aACrCD,EAAKE,YAAcF,GAAKA,EAAKC,cAAqB7uC,MAAKoF,GAC7DwpC,EAAKC,QAAU,GACfA,EAAOzsC,OAASysC,EAAOzsC,MAAM2sC,UAAUnlC,KAAK5J,KAAMA,KAAKkI,SAAU2mC,EAAOhS,SAI9E,QAASmS,IAAcjrC,EAAQqB,EAAI6pC,GAIjC,MAHAjrC,IAAYD,EAAQmrC,IACpBnrC,EAAOwD,UAAYnC,EACnBrB,EAAOkrC,GAAKA,EACLlrC,EAoET,QAASorC,IAAoBprC,EAAQtC,EAAM5B,EAAOuvC,GAChD,GAAIH,GAAKlrC,EAAOkrC,GAAI7pC,EAAKrB,EAAOwD,SAChC,OAAOgB,GAAkBxE,EAAyB,kBAAVlE,GAAuB,SAASjC,EAAMgE,EAAG6G,GAC/E7K,EAAKwH,GAAI6pC,GAAIG,MAAMrsC,IAAItB,EAAM2tC,EAAMvvC,EAAM+J,KAAKhM,EAAMA,EAAKsK,SAAUtG,EAAG6G,OACnE5I,EAAQuvC,EAAMvvC,GAAQ,SAASjC,GAClCA,EAAKwH,GAAI6pC,GAAIG,MAAMrsC,IAAItB,EAAM5B,MAqFjC,QAASwvC,IAAmBjxC,GAE1B,MADS,OAALA,IAAWA,EAAI,IACZ,WACL4B,KAAKsvC,YAAclxC,GA6EvB,QAASmxC,IAAuB9tC,GAC9B,MAAe,OAARA,EAAe,iBAAmB,gBAAkBA,EAAO,KAEpE,QAAS+tC,IAAkB5xC,EAAMgE,EAAGwD,EAAI6pC,EAAIQ,GAC1C,GAAIb,GAAOhxC,EAAKwH,KAAQxH,EAAKwH,IAC3BypC,OAAQ,EACRC,MAAO,IACLY,EAAad,EAAKK,EACtB,KAAKS,EAAY,CACf,GAAIr7B,GAAOo7B,EAAQp7B,IACnBq7B,GAAad,EAAKK,IAChBG,MAAO,GAAIrvC,GACXsU,KAAMA,EACNb,MAAOi8B,EAAQj8B,MACfm8B,SAAUF,EAAQE,SAClBC,KAAMH,EAAQG,KACd/S,MAAOj7B,GAET6tC,EAAU,OACRb,EAAKE,MACP7rC,GAAG4sC,MAAM,SAASC,GAKhB,QAAS9rB,GAAM8rB,GACb,GAAIlB,EAAKC,OAASI,EAAI,MAAO/I,IAC7B,IAAI2I,GAASD,EAAKA,EAAKC,OACnBA,OACAD,EAAKE,YACAF,GAAKA,EAAKC,QACjBA,EAAOzsC,OAASysC,EAAOzsC,MAAM2sC,UAAUnlC,KAAKhM,EAAMA,EAAKsK,SAAU2mC,EAAOhS,QAE1E+R,EAAKC,OAASI,EACdS,EAAWttC,OAASstC,EAAWttC,MAAM4hB,MAAMpa,KAAKhM,EAAMA,EAAKsK,SAAUtG,GACrE8tC,EAAWN,MAAMz8B,QAAQ,SAASlT,EAAKI,IACjCA,EAAQA,EAAM+J,KAAKhM,EAAMA,EAAKsK,SAAUtG,KAC1CmuC,EAAQnvC,KAAKf,KAGjB+vC,EAAOF,EAAWE,KAClBD,EAAWD,EAAWC,SACtB1sC,GAAG4sC,MAAM,WAEP,MADAA,GAAMzpC,EAAI4pC,EAAKF,GAAW,GAAK7sB,GAAU+sB,EAClC,GACN,EAAG37B,GAER,QAAS27B,GAAKF,GACZ,GAAIlB,EAAKC,SAAWI,EAAI,MAAO,EAE/B,KADA,GAAI/6B,GAAI47B,EAAUH,EAAUtsC,EAAIusC,EAAK17B,GAAIrS,EAAIkuC,EAAQhxC,OAC9C8C,EAAI,GACTkuC,IAAUluC,GAAG+H,KAAKhM,EAAMyF,EAE1B,OAAI6Q,IAAK,GACPw7B,EAAWttC,OAASstC,EAAWttC,MAAM61B,IAAIruB,KAAKhM,EAAMA,EAAKsK,SAAUtG,GAC5DskC,KAFT,OAKF,QAASA,KAEP,QADM0I,EAAKE,YAAcF,GAAKK,SAAiBrxC,GAAKwH,GAC7C,EAvCT,GAA8BuqC,GAAUC,EAApCp8B,EAAQk8B,EAAWl8B,MAAuBq8B,EAAQ77B,GAAiB+7B,IAEvE,OADAF,GAAM37B,EAAIV,EAAQa,EACLy7B,GAATt8B,EAAyBwQ,EAAM8rB,EAAUt8B,QAC7Cq8B,EAAMzpC,EAAI4d,IAsCT,EAAG3P,IAoGV,QAAS47B,IAAapnC,EAAWmZ,EAAI2H,GACnC9gB,EAAUqnC,KAAK,YAAa,SAAS/wC,GACnC,GAAI6oB,GAAKhG,EAAG7iB,EACZ,OAAO,cAAgBuU,SAASsU,GAAMA,EAAK2B,EAAGxqB,IAAM,QAGxD,QAASgxC,IAAatnC,EAAWiZ,EAAI8H,GACnC/gB,EAAUqnC,KAAK,YAAa,SAAS/wC,GACnC,GAAI6oB,GAAKlG,EAAG3iB,EACZ,OAAO,gBAAkBuU,SAASsU,GAAMA,EAAK4B,EAAGzqB,IAAM,MAyS1D,QAASixC,IAAwBz4B,GAC/B,MAAOA,GAAK04B,cA8Cd,QAASC,IAAcrJ,EAAQsJ,EAAS//B,GACtC,QAASsE,GAAMxW,GACb,MAAO2oC,GAAO3oC,GAUhB,QAASkyC,GAAW5Y,EAAQkX,GAC1B,GAAIjH,GAAOjQ,EAAO,GAAKA,EAAO,GAAIz2B,EAAS0mC,EAAOiH,EAAOltC,EAAIqB,GAAG4jC,OAAO4J,GAAoBtvC,EAC3F,OAAOS,IAAK6uC,GAAmB1xC,QAAWwxC,EAAQG,KAAM9I,GAAyBhQ,EAAO3xB,IAAI,SAAS9G,GACnG,MAAOA,GAAI,UACT2vC,GAAO,IAAQltC,EAAgF2uC,EAAQpvC,EAASsvC,GAAmB7uC,EAAI,GAAK6uC,GAAmB7uC,GAAKT,EAASS,EAAI,EAAIA,IAAhK+uC,GAA2B/I,GAAyBhQ,EAAQkX,GAAO,IAgC9F,MA5CAh6B,GAAMkO,OAAS,SAAS1kB,GACtB,MAAOsyC,IAAkB3J,EAAOjkB,OAAO1kB,KAEzCwW,EAAMmxB,OAAS,SAAS3nC,GACtB,MAAKQ,WAAUC,QACfkoC,EAAOhB,OAAO3nC,GACPwW,GAFuBmyB,EAAOhB,SAAShgC,IAAI2qC,KAUpD97B,EAAM0xB,KAAO,SAASqK,EAAUC,GAG9B,QAASC,GAAQp5B,GACf,OAAQnZ,MAAMmZ,KAAUk5B,EAAS74B,MAAML,EAAMi5B,IAAmBj5B,EAAO,GAAIm5B,GAAM/xC,OAHnF,GAAIknC,GAASnxB,EAAMmxB,SAAUrO,EAASoO,GAAeC,GAAS5kC,EAAqB,MAAZwvC,EAAmBL,EAAW5Y,EAAQ,IAA0B,gBAAbiZ,IAAyBL,EAAW5Y,EAAQiZ,EAKtK,OAJIxvC,KAAQwvC,EAAWxvC,EAAO,GAAIyvC,EAAOzvC,EAAO,IAIzCyT,EAAMmxB,OAAOM,GAAcN,EAAQ6K,EAAO,GAC/Cz4B,MAAO,SAASV,GACd,KAAOo5B,EAAQp5B,EAAOk5B,EAASx4B,MAAMV,KAAQA,EAAOi5B,GAAkBj5B,EAAO,EAC7E,OAAOA,IAETlD,KAAM,SAASkD,GACb,KAAOo5B,EAAQp5B,EAAOk5B,EAASp8B,KAAKkD,KAAQA,EAAOi5B,IAAmBj5B,EAAO,EAC7E,OAAOA,KAEPk5B,KAEN/7B,EAAMuyB,MAAQ,SAASwJ,EAAUC,GAC/B,GAAIlZ,GAASoO,GAAelxB,EAAMmxB,UAAW5kC,EAAqB,MAAZwvC,EAAmBL,EAAW5Y,EAAQ,IAA0B,gBAAbiZ,GAAwBL,EAAW5Y,EAAQiZ,IAAaA,EAAS74B,SACxKA,MAAO64B,GACNC,EAEH,OADIzvC,KAAQwvC,EAAWxvC,EAAO,GAAIyvC,EAAOzvC,EAAO,IACzCwvC,EAAS74B,MAAM4f,EAAO,GAAIgZ,IAAmBhZ,EAAO,GAAK,GAAW,EAAPkZ,EAAW,EAAIA,IAErFh8B,EAAMyyB,WAAa,WACjB,MAAO/2B,IAETsE,EAAM4yB,KAAO,WACX,MAAO4I,IAAcrJ,EAAOS,OAAQ6I,EAAS//B,IAExCm3B,GAAsB7yB,EAAOmyB,GAEtC,QAAS2J,IAAkB18B,GACzB,MAAO,IAAIH,MAAKG,GA0DlB,QAAS88B,IAAQr/B,GACf,MAAOs/B,MAAKn4B,MAAMnH,EAAQyB,cAK5B,QAAS89B,IAAQv/B,GACf,GAAIqG,GAAQm5B,GAAYC,aAExB,OADAp5B,GAAMq5B,WAAWF,GAAYG,MACtBt5B,EAAMu5B,yBAAyB5/B,EAAQyB,cAvxShD,GAAInQ,KACFuuC,QAAS,SAEPC,MAAmBlxC,MAAOoJ,GAAW,SAAS+nC,GAChD,MAAOD,IAAc7nC,KAAK8nC,IAExBP,GAAcnxC,KAAKlC,QAOvB,IAAIqzC,GACF,IACExnC,GAASwnC,GAAYpzC,gBAAgB4zC,YAAY,GAAGC,SACpD,MAAOvuC,IACPsG,GAAW,SAAS+nC,GAElB,IADA,GAAI9vC,GAAI8vC,EAAK3yC,OAAQolB,EAAQ,GAAI9M,OAAMzV,GAChCA,KAAKuiB,EAAMviB,GAAK8vC,EAAK9vC,EAC5B,OAAOuiB,IAOb,GAHKpQ,KAAKT,MAAKS,KAAKT,IAAM,WACxB,OAAQ,GAAIS,QAEVo9B,GACF,IACEA,GAAYzpC,cAAc,OAAOb,MAAMG,YAAY,UAAW,EAAG,IACjE,MAAO8K,IACP,GAAI+/B,IAAuB7xC,KAAK8xC,QAAQlyC,UAAWmyC,GAA0BF,GAAqB9sC,aAAcitC,GAA4BH,GAAqB5sC,eAAgBgtC,GAAqBjyC,KAAKkyC,oBAAoBtyC,UAAWuyC,GAAuBF,GAAmBjrC,WACpR6qC,IAAqB9sC,aAAe,SAAStD,EAAM5B,GACjDkyC,GAAwBnoC,KAAK5J,KAAMyB,EAAM5B,EAAQ,KAEnDgyC,GAAqB5sC,eAAiB,SAASL,EAAOC,EAAOhF,GAC3DmyC,GAA0BpoC,KAAK5J,KAAM4E,EAAOC,EAAOhF,EAAQ,KAE7DoyC,GAAmBjrC,YAAc,SAASvF,EAAM5B,EAAO8G,GACrDwrC,GAAqBvoC,KAAK5J,KAAMyB,EAAM5B,EAAQ,GAAI8G,IAIxD1D,GAAGmvC,UAAYl0C,EAIf+E,GAAGovC,WAAa,SAASl0C,EAAGC,GAC1B,MAAWD,GAAJC,EAAQ,GAAKA,EAAID,EAAI,EAAIC,GAAKD,EAAI,OAE3C8E,GAAGsN,IAAM,SAAS4T,EAAO/X,GACvB,GAA8BjO,GAAGC,EAA7BwD,EAAI,GAAIC,EAAIsiB,EAAMplB,MACtB,IAAyB,IAArBD,UAAUC,OAAc,CAC1B,OAAS6C,EAAIC,GAAG,GAAsB,OAAjBzD,EAAI+lB,EAAMviB,KAAexD,GAAKA,EAAG,CACpDD,EAAIC,CACJ,OAEF,OAASwD,EAAIC,GAAyB,OAAjBzD,EAAI+lB,EAAMviB,KAAezD,EAAIC,IAAGD,EAAIC,OACpD,CACL,OAASwD,EAAIC,GAAG,GAAwC,OAAnCzD,EAAIgO,EAAExC,KAAKua,EAAOA,EAAMviB,GAAIA,KAAexD,GAAKA,EAAG,CACtED,EAAIC,CACJ,OAEF,OAASwD,EAAIC,GAA2C,OAAnCzD,EAAIgO,EAAExC,KAAKua,EAAOA,EAAMviB,GAAIA,KAAezD,EAAIC,IAAGD,EAAIC,GAE7E,MAAOD,IAET8E,GAAGoN,IAAM,SAAS8T,EAAO/X,GACvB,GAA8BjO,GAAGC,EAA7BwD,EAAI,GAAIC,EAAIsiB,EAAMplB,MACtB,IAAyB,IAArBD,UAAUC,OAAc,CAC1B,OAAS6C,EAAIC,GAAG,GAAsB,OAAjBzD,EAAI+lB,EAAMviB,KAAexD,GAAKA,EAAG,CACpDD,EAAIC,CACJ,OAEF,OAASwD,EAAIC,GAAyB,OAAjBzD,EAAI+lB,EAAMviB,KAAexD,EAAID,IAAGA,EAAIC,OACpD,CACL,OAASwD,EAAIC,GAAG,GAAwC,OAAnCzD,EAAIgO,EAAExC,KAAKua,EAAOA,EAAMviB,GAAIA,KAAexD,GAAKA,EAAG,CACtED,EAAIC,CACJ,OAEF,OAASwD,EAAIC,GAA2C,OAAnCzD,EAAIgO,EAAExC,KAAKua,EAAOA,EAAMviB,GAAIA,KAAexD,EAAID,IAAGA,EAAIC,GAE7E,MAAOD,IAET8E,GAAG20B,OAAS,SAASzT,EAAO/X,GAC1B,GAA8BjO,GAAGC,EAAGgI,EAAhCxE,EAAI,GAAIC,EAAIsiB,EAAMplB,MACtB,IAAyB,IAArBD,UAAUC,OAAc,CAC1B,OAAS6C,EAAIC,GAAG,GAAsB,OAAjBzD,EAAI+lB,EAAMviB,KAAexD,GAAKA,EAAG,CACpDD,EAAIiI,EAAIhI,CACR,OAEF,OAASwD,EAAIC,GAAyB,OAAjBzD,EAAI+lB,EAAMviB,MACzBzD,EAAIC,IAAGD,EAAIC,GACPA,EAAJgI,IAAOA,EAAIhI,QAEZ,CACL,OAASwD,EAAIC,GAAG,GAAwC,OAAnCzD,EAAIgO,EAAExC,KAAKua,EAAOA,EAAMviB,GAAIA,KAAexD,GAAKA,EAAG,CACtED,EAAIiI,EAAIhI,CACR,OAEF,OAASwD,EAAIC,GAA2C,OAAnCzD,EAAIgO,EAAExC,KAAKua,EAAOA,EAAMviB,GAAIA,MAC3CzD,EAAIC,IAAGD,EAAIC,GACPA,EAAJgI,IAAOA,EAAIhI,IAGnB,OAASD,EAAGiI,IAQdnD,GAAGqvC,IAAM,SAASnuB,EAAO/X,GACvB,GAA6BjO,GAAzBiF,EAAI,EAAGvB,EAAIsiB,EAAMplB,OAAW6C,EAAI,EACpC,IAAyB,IAArB9C,UAAUC,OACZ,OAAS6C,EAAIC,GAAOtD,EAAWJ,GAAKgmB,EAAMviB,MAAKwB,GAAKjF,OAEpD,QAASyD,EAAIC,GAAOtD,EAAWJ,GAAKiO,EAAExC,KAAKua,EAAOA,EAAMviB,GAAIA,MAAKwB,GAAKjF,EAExE,OAAOiF,IAETH,GAAGsvC,KAAO,SAASpuB,EAAO/X,GACxB,GAA6BjO,GAAzBiF,EAAI,EAAGvB,EAAIsiB,EAAMplB,OAAW6C,EAAI,GAAI6G,EAAI5G,CAC5C,IAAyB,IAArB/C,UAAUC,OACZ,OAAS6C,EAAIC,GAAOtD,EAAWJ,EAAIE,EAAU8lB,EAAMviB,KAAMwB,GAAKjF,IAAUsK,MAExE,QAAS7G,EAAIC,GAAOtD,EAAWJ,EAAIE,EAAU+N,EAAExC,KAAKua,EAAOA,EAAMviB,GAAIA,KAAMwB,GAAKjF,IAAUsK,CAE5F,OAAIA,GAAUrF,EAAIqF,EAAlB,QAEFxF,GAAGwmC,SAAW,SAASrG,EAAQ5uB,GAC7B,GAAIuE,IAAKqqB,EAAOrkC,OAAS,GAAKyV,EAAI,EAAGrG,EAAIb,KAAK+K,MAAMU,GAAIxK,GAAK60B,EAAOj1B,EAAI,GAAI9K,EAAI0V,EAAI5K,CACpF,OAAO9K,GAAIkL,EAAIlL,GAAK+/B,EAAOj1B,GAAKI,GAAKA,GAEvCtL,GAAGuvC,OAAS,SAASruB,EAAO/X,GAC1B,GAAoCjO,GAAhCs0C,KAAc5wC,EAAIsiB,EAAMplB,OAAW6C,EAAI,EAC3C,IAAyB,IAArB9C,UAAUC,OACZ,OAAS6C,EAAIC,GAAOtD,EAAWJ,EAAIE,EAAU8lB,EAAMviB,MAAM6wC,EAAQ7xC,KAAKzC,OAEtE,QAASyD,EAAIC,GAAOtD,EAAWJ,EAAIE,EAAU+N,EAAExC,KAAKua,EAAOA,EAAMviB,GAAIA,MAAM6wC,EAAQ7xC,KAAKzC,EAE1F,OAAIs0C,GAAQ1zC,OAAekE,GAAGwmC,SAASgJ,EAAQ7uB,KAAK1lB,GAAe,IAAnE,QAEF+E,GAAGyvC,SAAW,SAASvuB,EAAO/X,GAC5B,GAA6BjO,GAAGgB,EAA5B0C,EAAIsiB,EAAMplB,OAAQ2J,EAAI,EAAStF,EAAI,EAAGxB,EAAI,GAAI6G,EAAI,CACtD,IAAyB,IAArB3J,UAAUC,OACZ,OAAS6C,EAAIC,GACPtD,EAAWJ,EAAIE,EAAU8lB,EAAMviB,OACjCzC,EAAIhB,EAAIuK,EACRA,GAAKvJ,IAAMsJ,EACXrF,GAAKjE,GAAKhB,EAAIuK,QAIlB,QAAS9G,EAAIC,GACPtD,EAAWJ,EAAIE,EAAU+N,EAAExC,KAAKua,EAAOA,EAAMviB,GAAIA,OACnDzC,EAAIhB,EAAIuK,EACRA,GAAKvJ,IAAMsJ,EACXrF,GAAKjE,GAAKhB,EAAIuK,GAIpB,OAAID,GAAI,EAAUrF,GAAKqF,EAAI,GAA3B,QAEFxF,GAAG0vC,UAAY,WACb,GAAIpkC,GAAItL,GAAGyvC,SAASpxC,MAAMtB,KAAMlB,UAChC,OAAOyP,GAAIjB,KAAKyC,KAAKxB,GAAKA,EAwB5B,IAAIqkC,IAAYn0C,EAAYP,EAC5B+E,IAAG4vC,WAAaD,GAAUj0C,KAC1BsE,GAAG4jC,OAAS5jC,GAAG6vC,YAAcF,GAAU3zC,MACvCgE,GAAG8vC,SAAW,SAAS3mC,GACrB,MAAO3N,GAAyB,IAAb2N,EAAErN,OAAe,SAASI,EAAGb,GAC9C,MAAOJ,GAAakO,EAAEjN,GAAIb,IACxB8N,IAENnJ,GAAG+vC,QAAU,SAAS7uB,EAAOlb,EAAIw9B,IAC1B/9B,EAAI5J,UAAUC,QAAU,IAC3B0nC,EAAKtiB,EAAMplB,OACH,EAAJ2J,IAAOO,EAAK,GAGlB,KADA,GAAiBiL,GAAGtS,EAAhB8G,EAAI+9B,EAAKx9B,EACNP,GACL9G,EAAI0L,KAAKu0B,SAAWn5B,IAAM,EAC1BwL,EAAIiQ,EAAMzb,EAAIO,GAAKkb,EAAMzb,EAAIO,GAAMkb,EAAMviB,EAAIqH,GAAKkb,EAAMviB,EAAIqH,GAAMiL,CAEpE,OAAOiQ,IAETlhB,GAAGgwC,QAAU,SAAS9uB,EAAO+uB,GAE3B,IADA,GAAItxC,GAAIsxC,EAAQn0C,OAAQo0C,EAAW,GAAI97B,OAAMzV,GACtCA,KAAKuxC,EAASvxC,GAAKuiB,EAAM+uB,EAAQtxC,GACxC,OAAOuxC,IAETlwC,GAAGmwC,MAAQ,SAASjvB,GAElB,IADA,GAAiCV,GAA7B7hB,EAAI,EAAGC,EAAIsiB,EAAMplB,OAAS,EAAO2kB,EAAKS,EAAM,GAAIivB,EAAQ,GAAI/7B,OAAU,EAAJxV,EAAQ,EAAIA,GACvEA,EAAJD,GAAOwxC,EAAMxxC,IAAO6hB,EAAKC,EAAIA,EAAKS,IAAQviB,GACjD,OAAOwxC,IAETnwC,GAAGowC,IAAM,WACP,KAAMxxC,EAAI/C,UAAUC,QAAS,QAC7B,KAAK,GAAI6C,GAAI,GAAI8G,EAAIzF,GAAGsN,IAAIzR,UAAWI,GAAeo0C,EAAO,GAAIj8B,OAAM3O,KAAM9G,EAAI8G,GAC/E,IAAK,GAAY7G,GAAR4G,EAAI,GAAO4qC,EAAMC,EAAK1xC,GAAK,GAAIyV,OAAMxV,KAAM4G,EAAI5G,GACtDwxC,EAAI5qC,GAAK3J,UAAU2J,GAAG7G,EAG1B,OAAO0xC,IAKTrwC,GAAGswC,UAAY,SAASC,GACtB,MAAOvwC,IAAGowC,IAAI/xC,MAAM2B,GAAIuwC,IAE1BvwC,GAAGtC,KAAO,SAASsF,GACjB,GAAItF,KACJ,KAAK,GAAIlB,KAAOwG,GAAKtF,EAAKC,KAAKnB,EAC/B,OAAOkB,IAETsC,GAAGmgC,OAAS,SAASn9B,GACnB,GAAIm9B,KACJ,KAAK,GAAI3jC,KAAOwG,GAAKm9B,EAAOxiC,KAAKqF,EAAIxG,GACrC,OAAO2jC,IAETngC,GAAGwwC,QAAU,SAASxtC,GACpB,GAAIwtC,KACJ,KAAK,GAAIh0C,KAAOwG,GAAKwtC,EAAQ7yC,MAC3BnB,IAAKA,EACLI,MAAOoG,EAAIxG,IAEb,OAAOg0C,IAETxwC,GAAGyiB,MAAQ,SAASguB,GAElB,IADA,GAAuBhrC,GAAkBirC,EAAQxvB,EAA7CtiB,EAAI6xC,EAAO30C,OAAW6C,EAAI,GAAI6G,EAAI,IAC7B7G,EAAIC,GAAG4G,GAAKirC,EAAO9xC,GAAG7C,MAE/B,KADA40C,EAAS,GAAIt8B,OAAM5O,KACV5G,GAAK,GAGZ,IAFAsiB,EAAQuvB,EAAO7xC,GACf6G,EAAIyb,EAAMplB,SACD2J,GAAK,GACZirC,IAASlrC,GAAK0b,EAAMzb,EAGxB,OAAOirC,GAET,IAAI9+B,IAAMvH,KAAKuH,GACf5R,IAAG+U,MAAQ,SAASgM,EAAOkiB,EAAMzuB,GAQ/B,GAPI3Y,UAAUC,OAAS,IACrB0Y,EAAO,EACH3Y,UAAUC,OAAS,IACrBmnC,EAAOliB,EACPA,EAAQ,KAGPkiB,EAAOliB,GAASvM,QAAmB,KAAM,IAAIm8B,OAAM,iBACxD,IAA8DnrC,GAA1DuP,KAAY3Y,EAAID,EAAsByV,GAAI4C,IAAQ7V,EAAI,EAE1D,IADAoiB,GAAS3kB,EAAG6mC,GAAQ7mC,EAAGoY,GAAQpY,EACpB,EAAPoY,EAAU,MAAQhP,EAAIub,EAAQvM,IAAS7V,GAAKskC,GAAMluB,EAAMpX,KAAK6H,EAAIpJ,OAAS,OAAQoJ,EAAIub,EAAQvM,IAAS7V,GAAKskC,GAAMluB,EAAMpX,KAAK6H,EAAIpJ,EACrI,OAAO2Y,IAeT/U,GAAGgD,IAAM,SAASzE,EAAQ4K,GACxB,GAAInG,GAAM,GAAIlG,EACd,IAAIyB,YAAkBzB,GACpByB,EAAOmR,QAAQ,SAASlT,EAAKI,GAC3BoG,EAAIlD,IAAItD,EAAKI,SAEV,IAAIwX,MAAMw8B,QAAQryC,GAAS,CAChC,GAA+B4I,GAA3BxI,EAAI,GAAIC,EAAIL,EAAOzC,MACvB,IAAyB,IAArBD,UAAUC,OAAc,OAAS6C,EAAIC,GAAGoE,EAAIlD,IAAInB,EAAGJ,EAAOI,QAAU,QAASA,EAAIC,GAAGoE,EAAIlD,IAAIqJ,EAAExC,KAAKpI,EAAQ4I,EAAI5I,EAAOI,GAAIA,GAAIwI,OAElI,KAAK,GAAI3K,KAAO+B,GAAQyE,EAAIlD,IAAItD,EAAK+B,EAAO/B,GAE9C,OAAOwG,GAKT,IAAI7F,IAAe,YAAaC,GAAc,MAC9Cf,GAASS,GACPkpC,IAAKzoC,EACLmC,IAAK,SAASlD,GACZ,MAAOO,MAAKC,EAAEE,EAAcV,KAE9BsD,IAAK,SAAStD,EAAKI,GACjB,MAAOG,MAAKC,EAAEE,EAAcV,IAAQI,GAEtCiD,OAAQrC,EACRE,KAAMD,EACN0iC,OAAQ,WACN,GAAIA,KACJ,KAAK,GAAI3jC,KAAOO,MAAKC,EAAGmjC,EAAOxiC,KAAKZ,KAAKC,EAAER,GAC3C,OAAO2jC,IAETqQ,QAAS,WACP,GAAIA,KACJ,KAAK,GAAIh0C,KAAOO,MAAKC,EAAGwzC,EAAQ7yC,MAC9BnB,IAAKa,EAAgBb,GACrBI,MAAOG,KAAKC,EAAER,IAEhB,OAAOg0C,IAET3yC,KAAMD,EACNizC,MAAO/yC,EACP4R,QAAS,SAASvG,GAChB,IAAK,GAAI3M,KAAOO,MAAKC,EAAGmM,EAAExC,KAAK5J,KAAMM,EAAgBb,GAAMO,KAAKC,EAAER,OA6BtEwD,GAAG8wC,KAAO,WAER,QAAS9tC,GAAI+tC,EAAS7vB,EAAOwK,GAC3B,GAAIA,GAAShuB,EAAK5B,OAAQ,MAAOk1C,GAASA,EAAOrqC,KAAKmqC,EAAM5vB,GAAS+vB,EAAa/vB,EAAMP,KAAKswB,GAAc/vB,CAE3G,KADA,GAAmDgwB,GAAU3yC,EAAQ4yC,EAAoChR,EAArGxhC,EAAI,GAAIC,EAAIsiB,EAAMplB,OAAQU,EAAMkB,EAAKguB,KAAoC0lB,EAAc,GAAIt0C,KACtF6B,EAAIC,IACPuhC,EAASiR,EAAY1xC,IAAIwxC,EAAW10C,EAAI+B,EAAS2iB,EAAMviB,MACzDwhC,EAAOxiC,KAAKY,GAEZ6yC,EAAYtxC,IAAIoxC,GAAY3yC,GAehC,OAZIwyC,IACFxyC,EAASwyC,IACTI,EAAS,SAASD,EAAU/Q,GAC1B5hC,EAAOuB,IAAIoxC,EAAUluC,EAAI+tC,EAAS5Q,EAAQzU,OAG5CntB,KACA4yC,EAAS,SAASD,EAAU/Q,GAC1B5hC,EAAO2yC,GAAYluC,EAAI+tC,EAAS5Q,EAAQzU,KAG5C0lB,EAAY1hC,QAAQyhC,GACb5yC,EAET,QAASiyC,GAAQxtC,EAAK0oB,GACpB,GAAIA,GAAShuB,EAAK5B,OAAQ,MAAOkH,EACjC,IAAIke,MAAYmwB,EAAUC,EAAS5lB,IAOnC,OANA1oB,GAAI0M,QAAQ,SAASlT,EAAK+0C,GACxBrwB,EAAMvjB,MACJnB,IAAKA,EACL2jC,OAAQqQ,EAAQe,EAAQ7lB,OAGrB2lB,EAAUnwB,EAAMP,KAAK,SAASzlB,EAAGC,GACtC,MAAOk2C,GAAQn2C,EAAEsB,IAAKrB,EAAEqB,OACrB0kB,EApCP,GAAyC+vB,GAAYD,EAAjDF,KAAWpzC,KAAW4zC,IA4D1B,OAtBAR,GAAK9tC,IAAM,SAASke,EAAO6vB,GACzB,MAAO/tC,GAAI+tC,EAAS7vB,EAAO,IAE7B4vB,EAAKN,QAAU,SAAStvB,GACtB,MAAOsvB,GAAQxtC,EAAIhD,GAAGgD,IAAKke,EAAO,GAAI,IAExC4vB,EAAKt0C,IAAM,SAASN,GAElB,MADAwB,GAAKC,KAAKzB,GACH40C,GAETA,EAAKQ,SAAW,SAASE,GAEvB,MADAF,GAAS5zC,EAAK5B,OAAS,GAAK01C,EACrBV,GAETA,EAAKG,WAAa,SAASO,GAEzB,MADAP,GAAaO,EACNV,GAETA,EAAKE,OAAS,SAAS7nC,GAErB,MADA6nC,GAAS7nC,EACF2nC,GAEFA,GAET9wC,GAAGF,IAAM,SAASohB,GAChB,GAAIphB,GAAM,GAAI/B,EACd,IAAImjB,EAAO,IAAK,GAAIviB,GAAI,EAAGC,EAAIsiB,EAAMplB,OAAY8C,EAAJD,IAASA,EAAGmB,EAAIuD,IAAI6d,EAAMviB,GACvE,OAAOmB,IAKTzD,EAAS0B,GACPioC,IAAKzoC,EACL8F,IAAK,SAAS7G,GAEZ,MADAO,MAAKC,EAAEE,EAAcV,GAAO,MAAO,EAC5BA,GAETqD,OAAQrC,EACR2iC,OAAQ1iC,EACRI,KAAMD,EACNizC,MAAO/yC,EACP4R,QAAS,SAASvG,GAChB,IAAK,GAAI3M,KAAOO,MAAKC,EAAGmM,EAAExC,KAAK5J,KAAMM,EAAgBb,OAGzDwD,GAAGyxC,YAIHzxC,GAAGiQ,OAAS,SAAS/R,EAAQC,GAE3B,IADA,GAAiCC,GAA7BO,EAAI,EAAGC,EAAI/C,UAAUC,SAChB6C,EAAIC,GAAGV,EAAOE,EAASvC,UAAU8C,IAAMV,EAAUC,EAAQC,EAAQA,EAAOC,GACjF,OAAOF,GAgBT,IAAIW,KAAsB,SAAU,KAAM,MAAO,MAAO,IAAK,IAE7DmB,IAAGd,SAAW,WAEZ,IADA,GAAIA,GAAW,GAAIF,GAAeL,EAAI,GAAIC,EAAI/C,UAAUC,SAC/C6C,EAAIC,GAAGM,EAASrD,UAAU8C,IAAMM,EAAkBC,EAC3D,OAAOA,IAGTF,EAAYrC,UAAU4C,GAAK,SAASqB,EAAMnB,GACxC,GAAId,GAAIiC,EAAKjB,QAAQ,KAAMnB,EAAO,EAKlC,IAJIG,GAAK,IACPH,EAAOoC,EAAKtD,MAAMqB,EAAI,GACtBiC,EAAOA,EAAKtD,MAAM,EAAGqB,IAEnBiC,EAAM,MAAO/E,WAAUC,OAAS,EAAIiB,KAAK6D,GAAMrB,GAAGf,GAAQzB,KAAK6D,GAAMrB,GAAGf,EAAMiB,EAClF,IAAyB,IAArB5D,UAAUC,OAAc,CAC1B,GAAgB,MAAZ2D,EAAkB,IAAKmB,IAAQ7D,MAC7BA,KAAKgf,eAAenb,IAAO7D,KAAK6D,GAAMrB,GAAGf,EAAM,KAErD,OAAOzB,QAyBXiD,GAAGb,MAAQ,KA0BXa,GAAG0C,QAAU,SAASvC,GACpB,MAAOA,GAAEoC,QAAQmvC,GAAe,QAElC,IAAIA,IAAgB,kCAChB3wC,MAAiB4wC,UAAY,SAASpzC,EAAQ5B,GAChD4B,EAAOozC,UAAYh1C,GACjB,SAAS4B,EAAQ5B,GACnB,IAAK,GAAIi1C,KAAYj1C,GAAW4B,EAAOqzC,GAAYj1C,EAAUi1C,IAM3DzwC,GAAY,SAAShB,EAAGvB,GAC1B,MAAOA,GAAEizC,cAAc1xC,IACtBkB,GAAe,SAASlB,EAAGvB,GAC5B,MAAOA,GAAEkzC,iBAAiB3xC,IACzBgF,GAAmB,SAASvG,EAAGuB,GAChC,GAAI4xC,GAAmBnzC,EAAEozC,SAAWpzC,EAAEN,EAAgBM,EAAG,mBAIzD,QAHAuG,GAAmB,SAASvG,EAAGuB,GAC7B,MAAO4xC,GAAiBprC,KAAK/H,EAAGuB,KAEVvB,EAAGuB,GAEP,mBAAX8xC,UACT9wC,GAAY,SAAShB,EAAGvB,GACtB,MAAOqzC,QAAO9xC,EAAGvB,GAAG,IAAM,MAE5ByC,GAAe4wC,OACf9sC,GAAmB8sC,OAAOC,iBAE5BlyC,GAAG4F,UAAY,WACb,MAAO5F,IAAG2H,OAAOumC,GAAYpzC,iBAE/B,IAAIkG,IAAwBhB,GAAG4F,UAAUjJ,YACzCqE,IAAsB2G,OAAS,SAASzG,GACtC,GAAoBixC,GAAUC,EAAS1sC,EAAO/K,EAA1C03C,IACJnxC,GAAWD,EAAsBC,EACjC,KAAK,GAAIsE,GAAI,GAAIC,EAAI1I,KAAKjB,SAAU0J,EAAIC,GAAK,CAC3C4sC,EAAU10C,KAAKw0C,MACfA,EAASttC,YAAca,EAAQ3I,KAAKyI,IAAIX,UACxC,KAAK,GAAIlG,GAAI,GAAIC,EAAI8G,EAAM5J,SAAU6C,EAAIC,IACnCjE,EAAO+K,EAAM/G,KACfwzC,EAASx0C,KAAKy0C,EAAUlxC,EAASyF,KAAKhM,EAAMA,EAAKsK,SAAUtG,EAAG6G,IAC1D4sC,GAAW,YAAcz3C,KAAMy3C,EAAQntC,SAAWtK,EAAKsK,WAE3DktC,EAASx0C,KAAK,MAIpB,MAAOkD,GAAawxC,IAOtBrxC,GAAsBsxC,UAAY,SAASpxC,GACzC,GAAoBixC,GAAUx3C,EAA1B03C,IACJnxC,GAAWE,EAAyBF,EACpC,KAAK,GAAIsE,GAAI,GAAIC,EAAI1I,KAAKjB,SAAU0J,EAAIC,GACtC,IAAK,GAAIC,GAAQ3I,KAAKyI,GAAI7G,EAAI,GAAIC,EAAI8G,EAAM5J,SAAU6C,EAAIC,IACpDjE,EAAO+K,EAAM/G,MACf0zC,EAAU10C,KAAKw0C,EAAWzrC,GAASxF,EAASyF,KAAKhM,EAAMA,EAAKsK,SAAUtG,EAAG6G,KACzE2sC,EAASttC,WAAalK,EAI5B,OAAOkG,GAAawxC,GAOtB,IAAIE,KACFpqC,IAAK,6BACLqqC,MAAO,+BACPC,MAAO,+BACPC,IAAK,uCACLC,MAAO,gCAET3yC,IAAGmC,IACDmR,OAAQi/B,GACRnwC,QAAS,SAAS5D,GAChB,GAAIG,GAAIH,EAAKmB,QAAQ,KAAM2T,EAAS9U,CAKpC,OAJIG,IAAK,IACP2U,EAAS9U,EAAKlB,MAAM,EAAGqB,GACvBH,EAAOA,EAAKlB,MAAMqB,EAAI,IAEjB4zC,GAAYx2B,eAAezI,IAChC3R,MAAO4wC,GAAYj/B,GACnB1R,MAAOpD,GACLA,IAGRwC,GAAsBisC,KAAO,SAASzuC,EAAM5B,GAC1C,GAAIf,UAAUC,OAAS,EAAG,CACxB,GAAoB,gBAAT0C,GAAmB,CAC5B,GAAI7D,GAAOoC,KAAKpC,MAEhB,OADA6D,GAAOwB,GAAGmC,GAAGC,QAAQ5D,GACdA,EAAKoD,MAAQjH,EAAKi4C,eAAep0C,EAAKmD,MAAOnD,EAAKoD,OAASjH,EAAK2I,aAAa9E,GAEtF,IAAK5B,IAAS4B,GAAMzB,KAAK81C,KAAKvxC,EAAkB1E,EAAO4B,EAAK5B,IAC5D,OAAOG,MAET,MAAOA,MAAK81C,KAAKvxC,EAAkB9C,EAAM5B,KA6B3CoE,GAAsB8xC,QAAU,SAASt0C,EAAM5B,GAC7C,GAAIf,UAAUC,OAAS,EAAG,CACxB,GAAoB,gBAAT0C,GAAmB,CAC5B,GAAI7D,GAAOoC,KAAKpC,OAAQiE,GAAKJ,EAAOmE,EAAqBnE,IAAO1C,OAAQ6C,EAAI,EAC5E,IAAI/B,EAAQjC,EAAKyI,WACf,OAASzE,EAAIC,GAAG,IAAKhC,EAAMm2C,SAASv0C,EAAKG,IAAK,OAAO,MAGrD,KADA/B,EAAQjC,EAAK2I,aAAa,WACjB3E,EAAIC,GAAG,IAAK4D,EAAuBhE,EAAKG,IAAI6E,KAAK5G,GAAQ,OAAO,CAE3E,QAAO,EAET,IAAKA,IAAS4B,GAAMzB,KAAK81C,KAAKhwC,EAAqBjG,EAAO4B,EAAK5B,IAC/D,OAAOG,MAET,MAAOA,MAAK81C,KAAKhwC,EAAqBrE,EAAM5B,KAkC9CoE,GAAsB4C,MAAQ,SAASpF,EAAM5B,EAAO8G,GAClD,GAAI9E,GAAI/C,UAAUC,MAClB,IAAQ,EAAJ8C,EAAO,CACT,GAAoB,gBAATJ,GAAmB,CACpB,EAAJI,IAAOhC,EAAQ,GACnB,KAAK8G,IAAYlF,GAAMzB,KAAK81C,KAAKpvC,EAAmBC,EAAUlF,EAAKkF,GAAW9G,GAC9E,OAAOG,MAET,GAAQ,EAAJ6B,EAAO,CACT,GAAIjE,GAAOoC,KAAKpC,MAChB,OAAOI,GAAUJ,GAAMq4C,iBAAiBr4C,EAAM,MAAMs4C,iBAAiBz0C,GAEvEkF,EAAW,GAEb,MAAO3G,MAAK81C,KAAKpvC,EAAmBjF,EAAM5B,EAAO8G,KAenD1C,GAAsB4wC,SAAW,SAASpzC,EAAM5B,GAC9C,GAAIf,UAAUC,OAAS,EAAG,CACxB,GAAoB,gBAAT0C,GAAmB,MAAOzB,MAAKpC,OAAO6D,EACjD,KAAK5B,IAAS4B,GAAMzB,KAAK81C,KAAK5uC,EAAsBrH,EAAO4B,EAAK5B,IAChE,OAAOG,MAET,MAAOA,MAAK81C,KAAK5uC,EAAsBzF,EAAM5B,KAe/CoE,GAAsBkyC,KAAO,SAASt2C,GACpC,MAAOf,WAAUC,OAASiB,KAAK81C,KAAsB,kBAAVj2C,GAAuB,WAChE,GAAI0O,GAAI1O,EAAMyB,MAAMtB,KAAMlB,UAC1BkB,MAAKsvC,YAAmB,MAAL/gC,EAAY,GAAKA,GACzB,MAAT1O,EAAgB,WAClBG,KAAKsvC,YAAc,IACjB,WACFtvC,KAAKsvC,YAAczvC,IAChBG,KAAKpC,OAAO0xC,aAEnBrrC,GAAsBmyC,KAAO,SAASv2C,GACpC,MAAOf,WAAUC,OAASiB,KAAK81C,KAAsB,kBAAVj2C,GAAuB,WAChE,GAAI0O,GAAI1O,EAAMyB,MAAMtB,KAAMlB,UAC1BkB,MAAKq2C,UAAiB,MAAL9nC,EAAY,GAAKA,GACvB,MAAT1O,EAAgB,WAClBG,KAAKq2C,UAAY,IACf,WACFr2C,KAAKq2C,UAAYx2C,IACdG,KAAKpC,OAAOy4C,WAEnBpyC,GAAsB2H,OAAS,SAASnK,GAEtC,MADAA,GAAO6F,EAAqB7F,GACrBzB,KAAK4K,OAAO,WACjB,MAAO5K,MAAKs2C,YAAY70C,EAAKH,MAAMtB,KAAMlB,eAa7CmF,GAAsB2yB,OAAS,SAASn1B,EAAMyV,GAG5C,MAFAzV,GAAO6F,EAAqB7F,GAC5ByV,EAAShT,EAAsBgT,GACxBlX,KAAK4K,OAAO,WACjB,MAAO5K,MAAKu2C,aAAa90C,EAAKH,MAAMtB,KAAMlB,WAAYoY,EAAO5V,MAAMtB,KAAMlB,YAAc,SAG3FmF,GAAsBnB,OAAS,WAC7B,MAAO9C,MAAK81C,KAAKluC,IAMnB3D,GAAsBgE,KAAO,SAASpI,EAAOJ,GAW3C,QAAS+2C,GAAK7tC,EAAO8tC,GACnB,GAAI70C,GAAiJhE,EAAM84C,EAApJ70C,EAAI8G,EAAM5J,OAAQ2J,EAAI+tC,EAAU13C,OAAQm+B,EAAK5vB,KAAKiD,IAAI1O,EAAG6G,GAAIiuC,EAAc,GAAIt/B,OAAM3O,GAAIkuC,EAAa,GAAIv/B,OAAM3O,GAAImuC,EAAY,GAAIx/B,OAAMxV,EACjJ,IAAIpC,EAAK,CACP,GAA6D00C,GAAzD2C,EAAiB,GAAI/2C,GAAUg3C,EAAY,GAAI1/B,OAAMxV,EACzD,KAAKD,EAAI,KAAMA,EAAIC,GACbi1C,EAAe7N,IAAIkL,EAAW10C,EAAImK,KAAKhM,EAAO+K,EAAM/G,GAAIhE,EAAKsK,SAAUtG,IACzEi1C,EAAUj1C,GAAKhE,EAEfk5C,EAAe/zC,IAAIoxC,EAAUv2C,GAE/Bm5C,EAAUn1C,GAAKuyC,CAEjB,KAAKvyC,EAAI,KAAMA,EAAI8G,IACX9K,EAAOk5C,EAAen0C,IAAIwxC,EAAW10C,EAAImK,KAAK6sC,EAAWC,EAAWD,EAAU70C,GAAIA,KAE7EhE,KAAS,IAClB+4C,EAAY/0C,GAAKhE,EACjBA,EAAKsK,SAAWwuC,GAHhBE,EAAWh1C,GAAKoG,EAAsB0uC,GAKxCI,EAAe/zC,IAAIoxC,GAAU,EAE/B,KAAKvyC,EAAI,KAAMA,EAAIC,GACbi1C,EAAen0C,IAAIo0C,EAAUn1C,OAAQ,IACvCi1C,EAAUj1C,GAAK+G,EAAM/G,QAGpB,CACL,IAAKA,EAAI,KAAMA,EAAIs7B,GACjBt/B,EAAO+K,EAAM/G,GACb80C,EAAWD,EAAU70C,GACjBhE,GACFA,EAAKsK,SAAWwuC,EAChBC,EAAY/0C,GAAKhE,GAEjBg5C,EAAWh1C,GAAKoG,EAAsB0uC,EAG1C,MAAUhuC,EAAJ9G,IAASA,EACbg1C,EAAWh1C,GAAKoG,EAAsByuC,EAAU70C,GAElD,MAAUC,EAAJD,IAASA,EACbi1C,EAAUj1C,GAAK+G,EAAM/G,GAGzBg1C,EAAWztC,OAASwtC,EACpBC,EAAW9uC,WAAa6uC,EAAY7uC,WAAa+uC,EAAU/uC,WAAaa,EAAMb,WAC9EkB,EAAMpI,KAAKg2C,GACXztC,EAAOvI,KAAK+1C,GACZK,EAAKp2C,KAAKi2C,GA1DZ,GAA6BluC,GAAO/K,EAAhCgE,EAAI,GAAIC,EAAI7B,KAAKjB,MACrB,KAAKD,UAAUC,OAAQ,CAErB,IADAc,EAAQ,GAAIwX,OAAMxV,GAAK8G,EAAQ3I,KAAK,IAAIjB,UAC/B6C,EAAIC,IACPjE,EAAO+K,EAAM/G,MACf/B,EAAM+B,GAAKhE,EAAKsK,SAGpB,OAAOrI,GAoDT,GAAImJ,GAAQJ,MAAwBO,EAASrF,MAAkBkzC,EAAOlzC,KACtE,IAAqB,kBAAVjE,GACT,OAAS+B,EAAIC,GACX20C,EAAK7tC,EAAQ3I,KAAK4B,GAAI/B,EAAM+J,KAAKjB,EAAOA,EAAMb,WAAWI,SAAUtG,QAGrE,QAASA,EAAIC,GACX20C,EAAK7tC,EAAQ3I,KAAK4B,GAAI/B,EAS1B,OANAsJ,GAAOH,MAAQ,WACb,MAAOA,IAETG,EAAO6tC,KAAO,WACZ,MAAOA,IAEF7tC,GAOTlF,GAAsBgzC,MAAQ,SAASp3C,GACrC,MAAOf,WAAUC,OAASiB,KAAK60C,SAAS,WAAYh1C,GAASG,KAAK60C,SAAS,aAE7E5wC,GAAsBgG,OAAS,SAASA,GACtC,GAAoBmrC,GAAUzsC,EAAO/K,EAAjC03C,IACkB,mBAAXrrC,KAAuBA,EAAS9B,EAAoB8B,GAC/D,KAAK,GAAIxB,GAAI,EAAGC,EAAI1I,KAAKjB,OAAY2J,EAAJD,EAAOA,IAAK,CAC3C6sC,EAAU10C,KAAKw0C,MACfA,EAASttC,YAAca,EAAQ3I,KAAKyI,IAAIX,UACxC,KAAK,GAAIlG,GAAI,EAAGC,EAAI8G,EAAM5J,OAAY8C,EAAJD,EAAOA,KAClChE,EAAO+K,EAAM/G,KAAOqI,EAAOL,KAAKhM,EAAMA,EAAKsK,SAAUtG,EAAG6G,IAC3D2sC,EAASx0C,KAAKhD,GAIpB,MAAOkG,GAAawxC,IAOtBrxC,GAAsBwwC,MAAQ,WAC5B,IAAK,GAAIhsC,GAAI,GAAIC,EAAI1I,KAAKjB,SAAU0J,EAAIC,GACtC,IAAK,GAA4D9K,GAAxD+K,EAAQ3I,KAAKyI,GAAI7G,EAAI+G,EAAM5J,OAAS,EAAG02B,EAAO9sB,EAAM/G,KAAYA,GAAK,IACxEhE,EAAO+K,EAAM/G,MACX6zB,GAAQA,IAAS73B,EAAKs5C,aAAazhB,EAAK3tB,WAAWyuC,aAAa34C,EAAM63B,GAC1EA,EAAO73B,EAIb,OAAOoC,OAETiE,GAAsB2f,KAAO,SAAStb,GACpCA,EAAaD,EAA4B/G,MAAMtB,KAAMlB,UACrD,KAAK,GAAI2J,GAAI,GAAIC,EAAI1I,KAAKjB,SAAU0J,EAAIC,GAAK1I,KAAKyI,GAAGmb,KAAKtb,EAC1D,OAAOtI,MAAKy0C,SAQdxwC,GAAsB6xC,KAAO,SAASttC,GACpC,MAAOD,GAAkBvI,KAAM,SAASpC,EAAMgE,EAAG6G,GAC/CD,EAASoB,KAAKhM,EAAMA,EAAKsK,SAAUtG,EAAG6G,MAW1CxE,GAAsB2F,KAAO,SAASpB,GACpC,GAAI2uC,GAAOxtC,GAAS7K,UAEpB,OADA0J,GAASlH,MAAM61C,EAAK,GAAKn3C,KAAMm3C,GACxBn3C,MAETiE,GAAsB6vC,MAAQ,WAC5B,OAAQ9zC,KAAKpC,QAEfqG,GAAsBrG,KAAO,WAC3B,IAAK,GAAI6K,GAAI,EAAGC,EAAI1I,KAAKjB,OAAY2J,EAAJD,EAAOA,IACtC,IAAK,GAAIE,GAAQ3I,KAAKyI,GAAI7G,EAAI,EAAGC,EAAI8G,EAAM5J,OAAY8C,EAAJD,EAAOA,IAAK,CAC7D,GAAIhE,GAAO+K,EAAM/G,EACjB,IAAIhE,EAAM,MAAOA,GAGrB,MAAO,OAETqG,GAAsBnD,KAAO,WAC3B,GAAIe,GAAI,CAIR,OAHA0G,GAAkBvI,KAAM,aACpB6B,IAEGA,EAMT,IAAIiH,MACJ7F,IAAG4F,UAAUG,MAAQJ,EACrB3F,GAAG4F,UAAUG,MAAMpJ,UAAYkJ,GAC/BA,GAA4B8C,OAAS3H,GAAsB2H,OAC3D9C,GAA4BgrC,MAAQ7vC,GAAsB6vC,MAC1DhrC,GAA4BlL,KAAOqG,GAAsBrG,KACzDkL,GAA4Bc,KAAO3F,GAAsB2F,KACzDd,GAA4BhI,KAAOmD,GAAsBnD,KACzDgI,GAA4B8B,OAAS,SAASzG,GAE5C,IAAK,GADeixC,GAAUC,EAAS+B,EAASzuC,EAAO/K,EAAnD03C,KACK7sC,EAAI,GAAIC,EAAI1I,KAAKjB,SAAU0J,EAAIC,GAAK,CAC3C0uC,GAAWzuC,EAAQ3I,KAAKyI,IAAIU,OAC5BmsC,EAAU10C,KAAKw0C,MACfA,EAASttC,WAAaa,EAAMb,UAC5B,KAAK,GAAIlG,GAAI,GAAIC,EAAI8G,EAAM5J,SAAU6C,EAAIC,IACnCjE,EAAO+K,EAAM/G,KACfwzC,EAASx0C,KAAKw2C,EAAQx1C,GAAKyzC,EAAUlxC,EAASyF,KAAKjB,EAAMb,WAAYlK,EAAKsK,SAAUtG,EAAG6G,IACvF4sC,EAAQntC,SAAWtK,EAAKsK,UAExBktC,EAASx0C,KAAK,MAIpB,MAAOkD,GAAawxC,IAEtBxsC,GAA4B8tB,OAAS,SAASn1B,EAAMyV,GAElD,MADIpY,WAAUC,OAAS,IAAGmY,EAASnO,EAA+B/I,OAC3DiE,GAAsB2yB,OAAOhtB,KAAK5J,KAAMyB,EAAMyV,IAYvDjU,GAAG2H,OAAS,SAAShN,GACnB,GAAI+K,EAQJ,OAPoB,gBAAT/K,IACT+K,GAAUvE,GAAUxG,EAAMuzC,KAC1BxoC,EAAMb,WAAaqpC,GAAYpzC,kBAE/B4K,GAAU/K,GACV+K,EAAMb,WAAanK,EAAmBC,IAEjCkG,GAAe6E,KAExB1F,GAAGsyC,UAAY,SAASza,GACtB,GAAInyB,EAQJ,OAPqB,gBAAVmyB,IACTnyB,EAAQgB,GAASrF,GAAaw2B,EAAOqW,KACrCxoC,EAAMb,WAAaqpC,GAAYpzC,kBAE/B4K,EAAQmyB,EACRnyB,EAAMb,WAAa,MAEdhE,GAAe6E,KAExB1E,GAAsBzB,GAAK,SAASqB,EAAMnB,EAAU2G,GAClD,GAAIxH,GAAI/C,UAAUC,MAClB,IAAQ,EAAJ8C,EAAO,CACT,GAAoB,gBAATgC,GAAmB,CACpB,EAAJhC,IAAOa,GAAW,EACtB,KAAK2G,IAAWxF,GAAM7D,KAAK81C,KAAK1sC,EAAgBC,EAASxF,EAAKwF,GAAU3G,GACxE,OAAO1C,MAET,GAAQ,EAAJ6B,EAAO,OAAQA,EAAI7B,KAAKpC,OAAO,OAASiG,KAAUhC,EAAE5B,CACxDoJ,IAAU,EAEZ,MAAOrJ,MAAK81C,KAAK1sC,EAAgBvF,EAAMnB,EAAU2G,IAgCnD,IAAIa,IAAyBjH,GAAGgD,KAC9BoxC,WAAY,YACZC,WAAY,YAEVnG,KACFjnC,GAAuByI,QAAQ,SAAStT,GAClC,KAAOA,IAAK8xC,KAAajnC,GAAuBpH,OAAOzD,IAwB/D,IAAIwL,IAAqBJ,GAAkB,CAyB3CxH,IAAGs0C,MAAQ,SAASrsC,GAClB,MAAOD,GAAcC,EAAW/H,KAElC,IAAIqI,IAAoBxL,KAAKw3C,WAAa,SAAS/wC,KAAKzG,KAAKw3C,UAAUC,WAAa,GAAK,CA8BzFx0C,IAAGy0C,MAAQ,SAASxsC,EAAWysC,EAAS1qC,GAEtC,GADInO,UAAUC,OAAS,IAAGkO,EAAa0qC,EAASA,EAAUx0C,IAAiBgI,gBACvEwsC,EAAS,IAAK,GAA+BD,GAA3B91C,EAAI,EAAGC,EAAI81C,EAAQ54C,OAAmB8C,EAAJD,IAASA,EAC/D,IAAK81C,EAAQC,EAAQ/1C,IAAIqL,aAAeA,EACtC,MAAOhC,GAAcC,EAAWwsC,IAItCz0C,GAAGyxC,SAASkD,KAAO,WAEjB,QAASA,KACP53C,KAAKwC,GAAG,iBAAkBq1C,GAAWr1C,GAAG,kBAAmBs1C,GAE7D,QAASC,GAAU9I,EAAIpjC,EAAUyX,EAAS00B,EAAM/f,GAC9C,MAAO,YAWL,QAASggB,KACP,GAA0ChuB,GAAIC,EAA1CguB,EAAYrsC,EAAShE,EAAQswC,EAC5BD,KACLjuB,EAAKiuB,EAAU,GAAKE,EAAU,GAC9BluB,EAAKguB,EAAU,GAAKE,EAAU,GAC9BC,GAAWpuB,EAAKC,EAChBkuB,EAAYF,EACZ/1C,GACE0B,KAAM,OACNvF,EAAG45C,EAAU,GAAKI,EAAW,GAC7BhsC,EAAG4rC,EAAU,GAAKI,EAAW,GAC7BruB,GAAIA,EACJC,GAAIA,KAGR,QAASquB,KACF1sC,EAAShE,EAAQswC,KACtBK,EAAYh2C,GAAGw1C,EAAOS,EAAU,MAAMj2C,GAAGy1B,EAAMwgB,EAAU,MACzDC,EAAYL,GAAWp1C,GAAGb,MAAMjB,SAAWA,GAC3CgB,GACE0B,KAAM,aA9BV,GAAkMy0C,GAA9LK,EAAO34C,KAAMmB,EAAS8B,GAAGb,MAAMjB,OAAQ0G,EAAS8wC,EAAK7wC,WAAY3F,EAAWC,EAAMoB,GAAGm1C,EAAM75C,WAAYu5C,EAAU,EAAGF,EAASlJ,IAAMwJ,EAAW,SAAqB,MAAVN,EAAiB,GAAK,IAAMA,GAAqBK,EAAcv1C,GAAG2H,OAAO0Y,EAAQniB,IAASqB,GAAGw1C,EAAOS,EAAUR,GAAOz1C,GAAGy1B,EAAMwgB,EAAUF,GAAQG,EAAcluC,EAAsBrJ,GAASi3C,EAAYvsC,EAAShE,EAAQswC,EACnXS,IACFN,EAAaM,EAAOt3C,MAAMq3C,EAAM75C,WAChCw5C,GAAeA,EAAWh6C,EAAI85C,EAAU,GAAIE,EAAWhsC,EAAI8rC,EAAU,KAErEE,GAAe,EAAG,GAEpBn2C,GACE0B,KAAM,eAdZ,GAAIzB,GAAQmB,EAAiBq0C,EAAM,OAAQ,YAAa,WAAYgB,EAAS,KAAMf,EAAYE,EAAU/1C,EAASiB,GAAGs0C,MAAOv5C,EAAW,YAAa,WAAY85C,EAAaC,EAAU/qC,EAAyB/J,GAAGy0C,MAAOz2C,EAAa,YAAa,WA8CpP,OALA22C,GAAKgB,OAAS,SAASt6C,GACrB,MAAKQ,WAAUC,QACf65C,EAASt6C,EACFs5C,GAFuBgB,GAIzB31C,GAAGiQ,OAAO0kC,EAAMx1C,EAAO,OAKhCa,GAAG00C,QAAU,SAASzsC,EAAWysC,GAE/B,MADI74C,WAAUC,OAAS,IAAG44C,EAAUx0C,IAAiBw0C,SAC9CA,EAAUhuC,GAASguC,GAAS1xC,IAAI,SAASyxC,GAC9C,GAAInsC,GAAQN,EAAcC,EAAWwsC,EAErC,OADAnsC,GAAM0B,WAAayqC,EAAMzqC,WAClB1B,OAGX,IAAI+V,IAAI,KAAMsX,GAAKtX,GAAIA,GAAGjU,GAAIC,KAAKmkB,GAAIlK,GAAI,EAAIla,GAAGwrC,GAAKtxB,GAAIjG,GAAG7T,GAAQJ,GAAI,EAAGiC,GAAajC,GAAI,IAAKyC,GAAa,IAAMzC,GAyBlHwe,GAAIve,KAAKwrC,MAAOC,GAAK,EAAGC,GAAK,CACjC/1C,IAAGg2C,gBAAkB,SAASx1B,EAAIC,GAGhC,QAASL,GAAYnP,GACnB,GAAI9Q,GAAI8Q,EAAI+E,CACZ,IAAI6qB,EAAI,CACN,GAAIoV,GAASrrC,GAAQoxB,GAAK5e,EAAI84B,GAAMJ,GAAKlhC,IAAOqhC,EAASprC,GAAQ+d,GAAIzoB,EAAI67B,GAAMtxB,GAAQsxB,GACvF,QAASma,EAAM/4B,EAAI4J,EAAIovB,EAAMh5B,EAAI6J,EAAIivB,EAAKD,EAASrrC,GAAQge,GAAIzoB,EAAI67B,IAErE,OAASma,EAAMllC,EAAI+V,EAAIovB,EAAMnlC,EAAIgW,EAAIivB,EAAK7rC,KAAKM,IAAIie,GAAIzoB,IARzD,GAAIg2C,GAAM31B,EAAG,GAAI41B,EAAM51B,EAAG,GAAI01B,EAAK11B,EAAG,GAAI61B,EAAM51B,EAAG,GAAI61B,EAAM71B,EAAG,GAAI81B,EAAK91B,EAAG,GACxEuG,EAAKqvB,EAAMF,EAAKlvB,EAAKqvB,EAAMF,EAAKzqB,EAAK3E,EAAKA,EAAKC,EAAKA,EAAIrS,EAAKvK,KAAKyC,KAAK6e,GAAKP,GAAMmrB,EAAKA,EAAKL,EAAKA,EAAKH,GAAKpqB,IAAO,EAAIuqB,EAAKJ,GAAKlhC,GAAK6W,GAAM8qB,EAAKA,EAAKL,EAAKA,EAAKH,GAAKpqB,IAAO,EAAI4qB,EAAKT,GAAKlhC,GAAKonB,EAAK3xB,KAAKoH,IAAIpH,KAAKyC,KAAKse,EAAKA,EAAK,GAAKA,GAAK6Q,EAAK5xB,KAAKoH,IAAIpH,KAAKyC,KAAK2e,EAAKA,EAAK,GAAKA,GAAKoV,EAAK5E,EAAKD,EAAIhmB,GAAK6qB,GAAMx2B,KAAKoH,IAAI8kC,EAAKL,IAAOttB,EAUxU,OADAxI,GAAYssB,SAAe,IAAJ12B,EAChBoK,GAETpgB,GAAGyxC,SAAS+E,KAAO,WAejB,QAASA,GAAKtqC,GACZA,EAAE3M,GAAGq1C,EAAW6B,GAAal3C,GAAGm3C,GAAwB,QAASC,GAAcp3C,GAAG,gBAAiBq3C,GAAYr3C,GAAGs1C,EAAYgC,GAmGhI,QAASC,GAASvlC,GAChB,QAAUA,EAAE,GAAKwlC,EAAK17C,GAAK07C,EAAK36C,GAAImV,EAAE,GAAKwlC,EAAK1tC,GAAK0tC,EAAK36C,GAE5D,QAASkM,GAAMlJ,GACb,OAASA,EAAE,GAAK23C,EAAK36C,EAAI26C,EAAK17C,EAAG+D,EAAE,GAAK23C,EAAK36C,EAAI26C,EAAK1tC,GAExD,QAAS2tC,GAAQ72C,GACf42C,EAAK36C,EAAIiO,KAAK+C,IAAI6pC,EAAY,GAAI5sC,KAAKiD,IAAI2pC,EAAY,GAAI92C,IAE7D,QAAS+2C,GAAY3lC,EAAGnS,GACtBA,EAAIkJ,EAAMlJ,GACV23C,EAAK17C,GAAKkW,EAAE,GAAKnS,EAAE,GACnB23C,EAAK1tC,GAAKkI,EAAE,GAAKnS,EAAE,GAErB,QAAS+3C,GAAOzB,EAAMnkC,EAAGnS,EAAGhD,GAC1Bs5C,EAAK0B,WACH/7C,EAAG07C,EAAK17C,EACRgO,EAAG0tC,EAAK1tC,EACRjN,EAAG26C,EAAK36C,GAEV46C,EAAQ3sC,KAAK2C,IAAI,EAAG5Q,IACpB86C,EAAYG,EAAU9lC,EAAGnS,GACzBs2C,EAAO11C,GAAG2H,OAAO+tC,GACbhJ,EAAW,IAAGgJ,EAAOA,EAAKjJ,aAAaC,SAASA,IACpDgJ,EAAK/uC,KAAK6vC,EAAKr3C,OAEjB,QAAS4kC,KACHrd,GAAIA,EAAGsc,OAAOjkB,EAAGhK,QAAQ/R,IAAI,SAAS3H,GACxC,OAAQA,EAAI07C,EAAK17C,GAAK07C,EAAK36C,IAC1B4G,IAAI+b,EAAGgB,SACN4G,GAAIA,EAAGqc,OAAOnkB,EAAG9J,QAAQ/R,IAAI,SAASqG,GACxC,OAAQA,EAAI0tC,EAAK1tC,GAAK0tC,EAAK36C,IAC1B4G,IAAI6b,EAAGkB,SAEZ,QAASu3B,GAAYp4C,GACdq4C,KAAWr4C,GACd0B,KAAM,cAGV,QAAS42C,GAAOt4C,GACd6kC,IACA7kC,GACE0B,KAAM,OACNiR,MAAOklC,EAAK36C,EACZsxB,WAAaqpB,EAAK17C,EAAG07C,EAAK1tC,KAG9B,QAASouC,GAAUv4C,KACVq4C,GAASr4C,GACd0B,KAAM,YAERy2C,EAAU,KAEZ,QAASZ,KAIP,QAASzB,KACPI,EAAU,EACV8B,EAAYl3C,GAAGs0C,MAAMoB,GAAOgC,GAC5BF,EAAOt4C,GAET,QAASo2C,KACPj1B,EAAQ9gB,GAAGo4C,EAAW,MAAMp4C,GAAGq4C,EAAS,MACxCnC,EAAYL,GAAWp1C,GAAGb,MAAMjB,SAAWA,GAC3Cu5C,EAAUv4C,GAXZ,GAAIw2C,GAAO34C,KAAMmB,EAAS8B,GAAGb,MAAMjB,OAAQgB,EAAWC,EAAMoB,GAAGm1C,EAAM75C,WAAYu5C,EAAU,EAAG/0B,EAAUrgB,GAAG2H,OAAO5M,EAAU26C,IAAOn2C,GAAGo4C,EAAW3C,GAAOz1C,GAAGq4C,EAAStC,GAAQoC,EAAYZ,EAAS92C,GAAGs0C,MAAMoB,IAAQD,EAAcluC,EAAsBmuC,EACtPmC,IAAuBlxC,KAAK+uC,GAC5B4B,EAAYp4C,GAYd,QAAS23C,KAKP,QAASiB,KACP,GAAIpD,GAAU10C,GAAG00C,QAAQgB,EAKzB,OAJAqC,GAAShB,EAAK36C,EACds4C,EAAQhlC,QAAQ,SAASuB,GACnBA,EAAEjH,aAAcguC,KAAYA,EAAW/mC,EAAEjH,YAAc8sC,EAAS7lC,MAE/DyjC,EAET,QAASuD,KACP,GAAI/5C,GAAS8B,GAAGb,MAAMjB,MACtB8B,IAAG2H,OAAOzJ,GAAQqB,GAAG24C,EAAWlD,GAAOz1C,GAAG44C,EAAU7C,GACpD8C,EAAQz6C,KAAKO,EAEb,KAAK,GADDm6C,GAAUr4C,GAAGb,MAAM+I,eACdvJ,EAAI,EAAGC,EAAIy5C,EAAQv8C,OAAY8C,EAAJD,IAASA,EAC3Cq5C,EAAWK,EAAQ15C,GAAGqL,YAAc,IAEtC,IAAI0qC,GAAUoD,IAAYznC,EAAMS,KAAKT,KACrC,IAAuB,IAAnBqkC,EAAQ54C,OAAc,CACxB,GAAsB,IAAlBuU,EAAMioC,EAAiB,CACzB,GAAI/mC,GAAImjC,EAAQ,EAChByC,GAAOzB,EAAMnkC,EAAGymC,EAAWzmC,EAAEvH,YAAaK,KAAK+K,MAAM/K,KAAKoH,IAAIslC,EAAK36C,GAAKiO,KAAKg2B,KAAO,GACpFtgC,IAEFu4C,EAAYjoC,MACP,IAAIqkC,EAAQ54C,OAAS,EAAG,CAC7B,GAAIyV,GAAImjC,EAAQ,GAAItuB,EAAIsuB,EAAQ,GAAI1tB,EAAKzV,EAAE,GAAK6U,EAAE,GAAIa,EAAK1V,EAAE,GAAK6U,EAAE,EACpEmyB,GAAYvxB,EAAKA,EAAKC,EAAKA,GAG/B,QAAS+tB,KACP,GAAgCx0B,GAAIg4B,EAAI/3B,EAAIg4B,EAAxC/D,EAAU10C,GAAG00C,QAAQgB,EACzBmC,IAAuBlxC,KAAK+uC,EAC5B,KAAK,GAAI/2C,GAAI,EAAGC,EAAI81C,EAAQ54C,OAAY8C,EAAJD,IAASA,EAAG85C,EAAK,KAEnD,GADAh4B,EAAKi0B,EAAQ/1C,GACT85C,EAAKT,EAAWv3B,EAAGzW,YAAa,CAClC,GAAIwuC,EAAI,KACRh4B,GAAKC,EAAI+3B,EAAKC,EAGlB,GAAIA,EAAI,CACN,GAAIC,IAAaA,EAAYj4B,EAAG,GAAKD,EAAG,IAAMk4B,GAAaA,EAAYj4B,EAAG,GAAKD,EAAG,IAAMk4B,EAAWC,EAASJ,GAAaluC,KAAKyC,KAAK4rC,EAAYH,EAC/I/3B,KAAQA,EAAG,GAAKC,EAAG,IAAM,GAAID,EAAG,GAAKC,EAAG,IAAM,GAC9C+3B,IAAQA,EAAG,GAAKC,EAAG,IAAM,GAAID,EAAG,GAAKC,EAAG,IAAM,GAC9CzB,EAAQ2B,EAASZ,GAEnBO,EAAY,KACZpB,EAAY12B,EAAIg4B,GAChBhB,EAAOt4C,GAET,QAASo2C,KACP,GAAIt1C,GAAGb,MAAMu1C,QAAQ54C,OAAQ,CAE3B,IAAK,GADDu8C,GAAUr4C,GAAGb,MAAM+I,eACdvJ,EAAI,EAAGC,EAAIy5C,EAAQv8C,OAAY8C,EAAJD,IAASA,QACpCq5C,GAAWK,EAAQ15C,GAAGqL,WAE/B,KAAK,GAAIA,KAAcguC,GACrB,WAAYF,KAGhB93C,GAAGsyC,UAAU8F,GAAS74C,GAAGq5C,EAAU,MACnCv4B,EAAQ9gB,GAAGq1C,EAAW6B,GAAal3C,GAAGs1C,EAAYgC,GAClDpB,IACAgC,EAAUv4C,GAlEZ,GAAuF64C,GAAnFrC,EAAO34C,KAAMmC,EAAWC,EAAMoB,GAAGm1C,EAAM75C,WAAYm8C,KAAiBO,EAAY,EAAWK,EAAW,SAAW54C,GAAGb,MAAM+I,eAAe,GAAG8B,WAAYkuC,EAAY,YAAcU,EAAUT,EAAW,WAAaS,EAAUR,KAAc/3B,EAAUrgB,GAAG2H,OAAO+tC,GAAOD,EAAcluC,EAAsBmuC,EAC/SuC,KACAX,EAAYp4C,GACZmhB,EAAQ9gB,GAAGq1C,EAAW,MAAMr1C,GAAGs1C,EAAYoD,GAkE7C,QAAStB,KACP,GAAIz3C,GAAWC,EAAMoB,GAAGxD,KAAMlB,UAC1Bg9C,GAAiBnoC,aAAamoC,IAAuBC,EAAahC,EAASO,EAAUrqB,GAAUhtB,GAAGs0C,MAAMv3C,OAC5G86C,GAAuBlxC,KAAK5J,MAAOu6C,EAAYp4C,IAC/C25C,EAAkB9wC,WAAW,WAC3B8wC,EAAkB,KAClBpB,EAAUv4C,IACT,IACHa,IACAi3C,EAAQ3sC,KAAK2C,IAAI,EAA6B,KAA1B+rC,MAAkChC,EAAK36C,GAC3D86C,EAAYG,EAASyB,GACrBtB,EAAOt4C,GAET,QAAS03C,KACP,GAAIrlC,GAAIvR,GAAGs0C,MAAMv3C,MAAOX,EAAIiO,KAAKoH,IAAIslC,EAAK36C,GAAKiO,KAAKg2B,GACpD8W,GAAOp6C,KAAMwU,EAAGulC,EAASvlC,GAAIvR,GAAGb,MAAM65C,SAAW3uC,KAAKmH,KAAKpV,GAAK,EAAIiO,KAAK+K,MAAMhZ,GAAK,GA3QtF,GAIG08C,GAAYzB,EAASrqB,EAAwL6rB,EAAiDP,EAA2Ev5B,EAAI2H,EAAI7H,EAAI8H,EAJpVowB,GACF17C,EAAG,EACHgO,EAAG,EACHjN,EAAG,GAC2ByB,GAAS,IAAK,KAAOo5C,EAAcgC,GAA0BvM,EAAW,IAAK6K,EAAU,EAAG3C,EAAY,iBAAkB+C,EAAY,iBAAkBC,EAAU,eAAiC/C,EAAa,kBAA8B11C,EAAQmB,EAAiBk2C,EAAM,YAAa,OAAQ,UAyQhU,OAxQKE,MACHA,GAAwB,WAAaxI,KAAe6K,GAAwB,WAC1E,OAAQ/4C,GAAGb,MAAM+5C,QAAUl5C,GAAGb,MAAMg6C,UAAY,IAAM,IACrD,SAAW,gBAAkBjL,KAAe6K,GAAwB,WACrE,MAAO/4C,IAAGb,MAAMi6C,YACf,eAAiBL,GAAwB,WAC1C,OAAQ/4C,GAAGb,MAAMk6C,QAChB,wBAKL7C,EAAKr3C,MAAQ,SAAS+M,GACpBA,EAAE2mC,KAAK,WACL,GAAI3zC,GAAWC,EAAMoB,GAAGxD,KAAMlB,WAAYy9C,EAAQvC,CAC9CwC,IACFv5C,GAAG2H,OAAO5K,MAAM0vC,aAAaoG,KAAK,aAAc,WAC9CkE,EAAOh6C,KAAKq6C,YACV/7C,EAAG,EACHgO,EAAG,EACHjN,EAAG,GAELk7C,EAAYp4C,KACXitC,MAAM,YAAa,WACpB,GAAInlB,GAAKnpB,EAAK,GAAIopB,EAAKppB,EAAK,GAAI0hB,EAAK83B,EAAUA,EAAQ,GAAKrwB,EAAK,EAAGxH,EAAK63B,EAAUA,EAAQ,GAAKpwB,EAAK,EAAGtoB,EAAIqB,GAAGg2C,kBAAmBz2B,EAAKw3B,EAAK17C,GAAK07C,EAAK36C,GAAIojB,EAAKu3B,EAAK1tC,GAAK0tC,EAAK36C,EAAG4qB,EAAK+vB,EAAK36C,KAAQmjB,EAAK+5B,EAAMj+C,GAAKi+C,EAAMl9C,GAAIojB,EAAK85B,EAAMjwC,GAAKiwC,EAAMl9C,EAAG4qB,EAAKsyB,EAAMl9C,GACjQ,OAAO,UAAS6U,GACd,GAAI7R,GAAIT,EAAEsS,GAAI7U,EAAI4qB,EAAK5nB,EAAE,EACzBrC,MAAKq6C,UAAYL,GACf17C,EAAGkkB,EAAKngB,EAAE,GAAKhD,EACfiN,EAAGmW,EAAKpgB,EAAE,GAAKhD,EACfA,EAAGA,GAELo7C,EAAOt4C,MAER2zC,KAAK,iBAAkB,WACxB4E,EAAUv4C,KACT2zC,KAAK,WAAY,WAClB4E,EAAUv4C,MAGZnC,KAAKq6C,UAAYL,EACjBO,EAAYp4C,GACZs4C,EAAOt4C,GACPu4C,EAAUv4C,OAIhBs3C,EAAK9oB,UAAY,SAAS1wB,GACxB,MAAKnB,WAAUC,QACfi7C,GACE17C,GAAI2B,EAAE,GACNqM,GAAIrM,EAAE,GACNZ,EAAG26C,EAAK36C,GAEV2nC,IACOyS,IAPyBO,EAAK17C,EAAG07C,EAAK1tC,IAS/CmtC,EAAK3kC,MAAQ,SAAS7U,GACpB,MAAKnB,WAAUC,QACfi7C,GACE17C,EAAG07C,EAAK17C,EACRgO,EAAG0tC,EAAK1tC,EACRjN,GAAIY,GAEN+mC,IACOyS,GAPuBO,EAAK36C,GASrCo6C,EAAKS,YAAc,SAASj6C,GAC1B,MAAKnB,WAAUC,QACfm7C,EAAmB,MAALj6C,EAAYi8C,KAA8Bj8C,EAAE,IAAKA,EAAE,IAC1Dw5C,GAFuBS,GAIhCT,EAAKxpB,OAAS,SAAShwB,GACrB,MAAKnB,WAAUC,QACfkxB,EAAShwB,KAAQA,EAAE,IAAKA,EAAE,IACnBw5C,GAFuBxpB,GAIhCwpB,EAAK34C,KAAO,SAASb,GACnB,MAAKnB,WAAUC,QACf+B,EAAOb,KAAQA,EAAE,IAAKA,EAAE,IACjBw5C,GAFuB34C,GAIhC24C,EAAK9J,SAAW,SAAS1vC,GACvB,MAAKnB,WAAUC,QACf4wC,GAAY1vC,EACLw5C,GAFuB9J,GAIhC8J,EAAKn7C,EAAI,SAASgE,GAChB,MAAKxD,WAAUC,QACf4qB,EAAKrnB,EACL0f,EAAK1f,EAAEolC,OACPsS,GACE17C,EAAG,EACHgO,EAAG,EACHjN,EAAG,GAEEo6C,GARuB9vB,GAUhC8vB,EAAKntC,EAAI,SAAShK,GAChB,MAAKxD,WAAUC,QACf6qB,EAAKtnB,EACLwf,EAAKxf,EAAEolC,OACPsS,GACE17C,EAAG,EACHgO,EAAG,EACHjN,EAAG,GAEEo6C,GARuB7vB,GAqKzB3mB,GAAGiQ,OAAOumC,EAAMr3C,EAAO,MAEhC,IAAgD45C,IAAuBrC,GAAnEuC,IAA6B,MACjCj5C,IAAGyN,MAAQzC,GAEXA,GAASrO,UAAU0Q,SAAW,WAC5B,MAAOtQ,MAAKiP,MAAQ,IAEtBhM,GAAGwN,IAAMvC,EAIT,IAAIuuC,IAAkBvuC,GAAOtO,UAAY,GAAIqO,GAC7CwuC,IAAgBC,SAAW,SAASr9C,GAElC,MADAA,GAAIiO,KAAK2C,IAAI,GAAInR,UAAUC,OAASM,EAAI,GACjC,GAAI6O,IAAOlO,KAAKmO,EAAGnO,KAAKoD,EAAGpD,KAAKqC,EAAIhD,IAE7Co9C,GAAgBE,OAAS,SAASt9C,GAEhC,MADAA,GAAIiO,KAAK2C,IAAI,GAAInR,UAAUC,OAASM,EAAI,GACjC,GAAI6O,IAAOlO,KAAKmO,EAAGnO,KAAKoD,EAAG/D,EAAIW,KAAKqC,IAE7Co6C,GAAgBxtC,IAAM,WACpB,MAAOX,IAAWtO,KAAKmO,EAAGnO,KAAKoD,EAAGpD,KAAKqC,IAqBzCY,GAAGi7B,IAAMrvB,EAIT,IAAI+tC,IAAkB/tC,GAAOjP,UAAY,GAAIqO,GAC7C2uC,IAAgBF,SAAW,SAASr9C,GAClC,MAAO,IAAIwP,IAAO7O,KAAKmO,EAAGnO,KAAKoG,EAAGkH,KAAKiD,IAAI,IAAKvQ,KAAKqC,EAAIw6C,IAAY/9C,UAAUC,OAASM,EAAI,MAE9Fu9C,GAAgBD,OAAS,SAASt9C,GAChC,MAAO,IAAIwP,IAAO7O,KAAKmO,EAAGnO,KAAKoG,EAAGkH,KAAK+C,IAAI,EAAGrQ,KAAKqC,EAAIw6C,IAAY/9C,UAAUC,OAASM,EAAI,MAE5Fu9C,GAAgB3tC,IAAM,WACpB,MAAOG,IAAWpP,KAAKmO,EAAGnO,KAAKoG,EAAGpG,KAAKqC,GAAG4M,OAO5ChM,GAAG27B,IAAM9vB,EAIT,IAAI+tC,IAAW,GACXptC,GAAW,OAAQC,GAAW,EAAGC,GAAW,QAC5CmtC,GAAkBhuC,GAAOlP,UAAY,GAAIqO,GAC7C6uC,IAAgBJ,SAAW,SAASr9C,GAClC,MAAO,IAAIyP,IAAOxB,KAAKiD,IAAI,IAAKvQ,KAAKqC,EAAIw6C,IAAY/9C,UAAUC,OAASM,EAAI,IAAKW,KAAK7B,EAAG6B,KAAK5B,IAEhG0+C,GAAgBH,OAAS,SAASt9C,GAChC,MAAO,IAAIyP,IAAOxB,KAAK+C,IAAI,EAAGrQ,KAAKqC,EAAIw6C,IAAY/9C,UAAUC,OAASM,EAAI,IAAKW,KAAK7B,EAAG6B,KAAK5B,IAE9F0+C,GAAgB7tC,IAAM,WACpB,MAAOM,IAAWvP,KAAKqC,EAAGrC,KAAK7B,EAAG6B,KAAK5B,IAqBzC6E,GAAGgM,IAAML,EAUT,IAAImuC,IAAkBnuC,GAAOhP,UAAY,GAAIqO,GAC7C8uC,IAAgBL,SAAW,SAASr9C,GAClCA,EAAIiO,KAAK2C,IAAI,GAAInR,UAAUC,OAASM,EAAI,EACxC,IAAI6P,GAAIlP,KAAKkP,EAAGC,EAAInP,KAAKmP,EAAG/Q,EAAI4B,KAAK5B,EAAGwD,EAAI,EAC5C,OAAKsN,IAAMC,GAAM/Q,GACb8Q,GAAStN,EAAJsN,IAAOA,EAAItN,GAChBuN,GAASvN,EAAJuN,IAAOA,EAAIvN,GAChBxD,GAASwD,EAAJxD,IAAOA,EAAIwD,GACb,GAAIgN,IAAOtB,KAAKiD,IAAI,IAAKrB,EAAI7P,GAAIiO,KAAKiD,IAAI,IAAKpB,EAAI9P,GAAIiO,KAAKiD,IAAI,IAAKnS,EAAIiB,KAJrD,GAAIuP,IAAOhN,EAAGA,EAAGA,IAM9Cm7C,GAAgBJ,OAAS,SAASt9C,GAEhC,MADAA,GAAIiO,KAAK2C,IAAI,GAAInR,UAAUC,OAASM,EAAI,GACjC,GAAIuP,IAAOvP,EAAIW,KAAKkP,EAAG7P,EAAIW,KAAKmP,EAAG9P,EAAIW,KAAK5B,IAErD2+C,GAAgBtsC,IAAM,WACpB,MAAOpC,IAAWrO,KAAKkP,EAAGlP,KAAKmP,EAAGnP,KAAK5B,IAEzC2+C,GAAgBzsC,SAAW,WACzB,MAAO,IAAMF,GAAWpQ,KAAKkP,GAAKkB,GAAWpQ,KAAKmP,GAAKiB,GAAWpQ,KAAK5B,GAmEzE,IAAI0S,IAAe7N,GAAGgD,KACpB+2C,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChBC,KAAM,IACNC,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACfC,IAAK,SACLC,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXryB,IAAK,SACLsyB,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAEfp1C,IAAa6B,QAAQ,SAASlT,EAAKI,GACjCiR,GAAa/N,IAAItD,EAAKyQ,GAAarQ,MAOrCoD,GAAGkjD,QAAUj1C,GACbjO,GAAG4O,IAAMV,GAAWlQ,GA4FpBgC,GAAGmjD,IAAM,SAASC,EAAW/0C,GAE3B,QAAS80C,GAAI/0C,EAAKi1C,EAAK99C,GACjB1J,UAAUC,OAAS,IAAGyJ,EAAW89C,EAAKA,EAAM,KAChD,IAAIz0C,GAAMN,GAAOF,EAAKC,EAAiB,MAAPg1C,EAAcl1C,EAAWm1C,EAAcD,GAAM99C,EAI7E,OAHAqJ,GAAIy0C,IAAM,SAASrmD,GACjB,MAAOnB,WAAUC,OAAS8S,EAAIT,SAAsB,OAAZk1C,EAAMrmD,GAAamR,EAAWm1C,EAActmD,IAAMqmD,GAErFz0C,EAET,QAAST,GAASO,GAChB,MAAOy0C,GAAIttC,MAAMnH,EAAQyB,cAE3B,QAASmzC,GAAcn6C,GACrB,MAAO,UAASuF,GACd,MAAOy0C,GAAIttC,MAAMnH,EAAQyB,aAAchH,IA+E3C,QAASo6C,GAAUF,GACjB,MAAOA,GAAIrgD,IAAIwgD,GAAa3wC,KAAKuwC,GAEnC,QAASI,GAAYtQ,GACnB,MAAOuQ,GAASjgD,KAAK0vC,GAAQ,IAAMA,EAAK3wC,QAAQ,MAAO,MAAQ,IAAM2wC,EAjGvE,GAAIuQ,GAAW,GAAIhhD,QAAO,KAAO2gD,EAAY,OAAQM,EAAgBN,EAAU1tC,WAAW,EAmG1F,OAlFAytC,GAAIttC,MAAQ,SAASq9B,EAAM/pC,GACzB,GAAIhC,EACJ,OAAOg8C,GAAIQ,UAAUzQ,EAAM,SAASmQ,EAAK1kD,GACvC,GAAIwI,EAAG,MAAOA,GAAEk8C,EAAK1kD,EAAI,EACzB,IAAIzD,GAAI,GAAI0oD,UAAS,IAAK,WAAaP,EAAIrgD,IAAI,SAASxE,EAAMG,GAC5D,MAAOqvC,MAAK6V,UAAUrlD,GAAQ,OAASG,EAAI,MAC1CkU,KAAK,KAAO,IACf1L,GAAIgC,EAAI,SAASk6C,EAAK1kD,GACpB,MAAOwK,GAAEjO,EAAEmoD,GAAM1kD,IACfzD,KAGRioD,EAAIQ,UAAY,SAASzQ,EAAM/pC,GAE7B,QAAS26C,KACP,GAAIzqC,GAAKoZ,EAAG,MAAOsxB,EACnB,IAAIC,EAAK,MAAOA,IAAM,EAAOC,CAC7B,IAAIz+C,GAAI6T,CACR,IAA2B,KAAvB65B,EAAKx9B,WAAWlQ,GAAW,CAE7B,IADA,GAAI7G,GAAI6G,EACD7G,IAAM8zB,GACX,GAA2B,KAAvBygB,EAAKx9B,WAAW/W,GAAW,CAC7B,GAA+B,KAA3Bu0C,EAAKx9B,WAAW/W,EAAI,GAAW,QACjCA,EAGN0a,EAAI1a,EAAI,CACR,IAAIwE,GAAI+vC,EAAKx9B,WAAW/W,EAAI,EAO5B,OANU,MAANwE,GACF6gD,GAAM,EACyB,KAA3B9Q,EAAKx9B,WAAW/W,EAAI,MAAa0a,GACtB,KAANlW,IACT6gD,GAAM,GAED9Q,EAAK51C,MAAMkI,EAAI,EAAG7G,GAAG4D,QAAQ,MAAO,KAE7C,KAAWkwB,EAAJpZ,GAAO,CACZ,GAAIlW,GAAI+vC,EAAKx9B,WAAW2D,KAAMjd,EAAI,CAClC,IAAU,KAAN+G,EAAU6gD,GAAM,MAAW,IAAU,KAAN7gD,EACjC6gD,GAAM,EACqB,KAAvB9Q,EAAKx9B,WAAW2D,OAAaA,IAAKjd,OACjC,IAAI+G,IAAMugD,EAAe,QAChC,OAAOxQ,GAAK51C,MAAMkI,EAAG6T,EAAIjd,GAE3B,MAAO82C,GAAK51C,MAAMkI,GAEpB,IAjCA,GAAkEyL,GAAG+yC,EAAjEC,KAAUF,KAAUG,KAAWzxB,EAAIygB,EAAKp3C,OAAQud,EAAI,EAAGza,EAAI,GAiCvDqS,EAAI6yC,OAAaC,GAAK,CAE5B,IADA,GAAI7oD,MACG+V,IAAMgzC,GAAOhzC,IAAM8yC,GACxB7oD,EAAEyC,KAAKsT,GACPA,EAAI6yC,GAEF36C,IAAwB,OAAlBjO,EAAIiO,EAAEjO,EAAG0D,OACnBslD,EAAKvmD,KAAKzC,GAEZ,MAAOgpD,IAETf,EAAI51C,OAAS,SAAS22C,GACpB,GAAI9vC,MAAMw8B,QAAQsT,EAAK,IAAK,MAAOf,GAAIgB,WAAWD,EAClD,IAAIE,GAAW,GAAIrmD,GAAUsmD,IAQ7B,OAPAH,GAAKx0C,QAAQ,SAAS2zC,GACpB,IAAK,GAAIiB,KAASjB,GACXe,EAASpe,IAAIse,IAChBD,EAAO1mD,KAAKymD,EAAS/gD,IAAIihD,OAItBD,EAAOrhD,IAAIwgD,GAAa3wC,KAAKuwC,IAAaxjD,OAAOskD,EAAKlhD,IAAI,SAASqgD,GAC1E,MAAOgB,GAAOrhD,IAAI,SAASshD,GACzB,MAAOd,GAAYH,EAAIiB,MACtBzxC,KAAKuwC,MACNvwC,KAAK,OAEXswC,EAAIgB,WAAa,SAASD,GACxB,MAAOA,GAAKlhD,IAAIugD,GAAW1wC,KAAK,OAQ3BswC,GAETnjD,GAAGukD,IAAMvkD,GAAGmjD,IAAI,IAAK,YACrBnjD,GAAGwkD,IAAMxkD,GAAGmjD,IAAI,IAAK,4BACrB,IAAInyC,IAAoBK,GAAoBT,GAAmBD,GAAkBI,GAAiBF,GAAiB9T,KAAKuB,EAAgBvB,KAAM,2BAA6B,SAASwI,GAClLwC,WAAWxC,EAAU,IAEvBvF,IAAG4sC,MAAQ,SAASrnC,EAAUgL,EAAOk0C,GACnC,GAAI7lD,GAAI/C,UAAUC,MACV,GAAJ8C,IAAO2R,EAAQ,GACX,EAAJ3R,IAAO6lD,EAAO3zC,KAAKT,MACvB,IAAIe,GAAOqzC,EAAOl0C,EAAOq8B,GACvBzpC,EAAGoC,EACH0L,EAAGG,EACHjI,GAAG,EACHvK,EAAG,KAEDyS,IAAoBA,GAAmBzS,EAAIguC,EAAY57B,GAAqB47B,EAChFv7B,GAAqBu7B,EAChBh8B,KACHD,GAAmBD,aAAaC,IAChCC,GAAoB,EACpBC,GAAeT,MAgBnBpQ,GAAG4sC,MAAM8X,MAAQ,WACfp0C,KACAE,MA2BFxQ,GAAG0L,MAAQ,SAASrQ,EAAGuD,GACrB,MAAOA,GAAIyL,KAAKqB,MAAMrQ,GAAKuD,EAAIyL,KAAK2C,IAAI,GAAIpO,KAAOA,EAAIyL,KAAKqB,MAAMrQ,GAEpE,IAAIspD,KAAsB,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM3hD,IAAI2O,GACnH3R,IAAGgU,aAAe,SAASpX,EAAOyW,GAChC,GAAI1U,GAAI,CAOR,OANI/B,KACU,EAARA,IAAWA,GAAS,IACpByW,IAAWzW,EAAQoD,GAAG0L,MAAM9O,EAAO0U,GAAoB1U,EAAOyW,KAClE1U,EAAI,EAAI0L,KAAK+K,MAAM,MAAQ/K,KAAKoH,IAAI7U,GAASyN,KAAKqH,MAClD/S,EAAI0L,KAAK+C,IAAI,IAAK/C,KAAKiD,IAAI,GAA8B,EAA1BjD,KAAK+K,OAAOzW,EAAI,GAAK,MAE/CgmD,GAAkB,EAAIhmD,EAAI,GAwGnC,IAAIoU,IAAe,yEACfW,GAAkB1T,GAAGgD,KACvB7H,EAAG,SAASE,GACV,MAAOA,GAAEgS,SAAS,IAEpBlK,EAAG,SAAS9H,GACV,MAAOupD,QAAOC,aAAaxpD,IAE7B8L,EAAG,SAAS9L,GACV,MAAOA,GAAEgS,SAAS,IAEpBhS,EAAG,SAASA,GACV,MAAOA,GAAEgS,SAAS,KAEpBqK,EAAG,SAASrc,GACV,MAAOA,GAAEgS,SAAS,IAAI3O,eAExBwN,EAAG,SAAS7Q,EAAGkW,GACb,MAAOlW,GAAEypD,YAAYvzC,IAEvBnR,EAAG,SAAS/E,EAAGkW,GACb,MAAOlW,GAAE0pD,cAAcxzC,IAEzBpI,EAAG,SAAS9N,EAAGkW,GACb,MAAOlW,GAAE2pD,QAAQzzC,IAEnBtF,EAAG,SAAS5Q,EAAGkW,GACb,OAAQlW,EAAI2E,GAAG0L,MAAMrQ,EAAGiW,GAAoBjW,EAAGkW,KAAKyzC,QAAQ36C,KAAK+C,IAAI,EAAG/C,KAAKiD,IAAI,GAAIgE,GAAoBjW,GAAK,EAAI,OAAQkW,SAM1H+H,GAAUtZ,GAAGoR,QAAW0D,GAAUhE,IAItCuD,IAAY1X,WACVwc,QAAS,WACP,MAAOpc,MAAKC,EAAEioD,cAEhB1uC,OAAQ,WACN,MAAOxZ,MAAKC,EAAEkoD,aAEhBrrC,YAAa,WACX,MAAO9c,MAAKC,EAAEmoD,kBAEhB/rC,SAAU,WACR,MAAOrc,MAAKC,EAAEooD,eAEhB5rC,gBAAiB,WACf,MAAOzc,MAAKC,EAAEqoD,sBAEhB5rC,WAAY,WACV,MAAO1c,MAAKC,EAAEsoD,iBAEhBtsC,SAAU,WACR,MAAOjc,MAAKC,EAAEuoD,eAEhB7rC,WAAY,WACV,MAAO3c,MAAKC,EAAEwoD,iBAEhBC,QAAS,WACP,MAAO1oD,MAAKC,EAAEyoD,WAEhBvqC,kBAAmB,WACjB,MAAO,IAETwqC,QAAS,WACP,MAAO3oD,MAAKC,EAAE0oD,WAEhBC,QAAS,WACPC,GAAkBC,WAAWxnD,MAAMtB,KAAKC,EAAGnB,YAE7CiqD,OAAQ,WACNF,GAAkBG,UAAU1nD,MAAMtB,KAAKC,EAAGnB,YAE5Cwa,YAAa,WACXuvC,GAAkBI,eAAe3nD,MAAMtB,KAAKC,EAAGnB,YAEjD4a,SAAU,WACRmvC,GAAkBK,YAAY5nD,MAAMtB,KAAKC,EAAGnB,YAE9CqqD,gBAAiB,WACfN,GAAkBO,mBAAmB9nD,MAAMtB,KAAKC,EAAGnB,YAErDuqD,WAAY,WACVR,GAAkBS,cAAchoD,MAAMtB,KAAKC,EAAGnB,YAEhDyqD,SAAU,WACRV,GAAkBW,YAAYloD,MAAMtB,KAAKC,EAAGnB,YAE9C2qD,WAAY,WACVZ,GAAkBa,cAAcpoD,MAAMtB,KAAKC,EAAGnB,YAEhD6qD,QAAS,WACPd,GAAkBc,QAAQroD,MAAMtB,KAAKC,EAAGnB,YAG5C,IAAI+pD,IAAoB90C,KAAKnU,SA6D7B2c,IAAQm0B,KAAOl5B,GAAiB,SAASG,GAGvC,MAFAA,GAAO4E,GAAQqtC,IAAIjyC,GACnBA,EAAK4xC,SAAS,EAAG,GACV5xC,GACN,SAASA,EAAMG,GAChBH,EAAK2B,YAAY3B,EAAKmF,cAAgBhF,IACrC,SAASH,GACV,MAAOA,GAAKmF,gBAEdP,GAAQstC,MAAQttC,GAAQm0B,KAAK14B,MAC7BuE,GAAQstC,MAAMzxC,IAAMmE,GAAQm0B,KAAKt4B,IAAIJ,MACrCuE,GAAQqtC,IAAMpyC,GAAiB,SAASG,GACtC,GAAIiyC,GAAM,GAAI7xC,IAAQ,IAAK,EAE3B,OADA6xC,GAAItwC,YAAY3B,EAAKmF,cAAenF,EAAKsE,WAAYtE,EAAKyE,WACnDwtC,GACN,SAASjyC,EAAMG,GAChBH,EAAKixC,QAAQjxC,EAAKyE,UAAYtE,IAC7B,SAASH,GACV,MAAOA,GAAKyE,UAAY,IAE1BG,GAAQlB,KAAOkB,GAAQqtC,IAAI5xC,MAC3BuE,GAAQlB,KAAKjD,IAAMmE,GAAQqtC,IAAIxxC,IAAIJ,MACnCuE,GAAQC,UAAY,SAAS7E,GAC3B,GAAI+4B,GAAOn0B,GAAQm0B,KAAK/4B,EACxB,OAAOrK,MAAK+K,OAAOV,EAAO+4B,EAA+D,KAAvD/4B,EAAKwG,oBAAsBuyB,EAAKvyB,sBAA8B,SAEhG,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAAaxL,QAAQ,SAASi3C,EAAKhoD,GACrGA,EAAI,EAAIA,CACR,IAAIivC,GAAWt0B,GAAQqtC,GAAOpyC,GAAiB,SAASG,GAEtD,OADCA,EAAO4E,GAAQqtC,IAAIjyC,IAAOixC,QAAQjxC,EAAKyE,WAAazE,EAAK6B,SAAW5X,GAAK,GACnE+V,GACN,SAASA,EAAMG,GAChBH,EAAKixC,QAAQjxC,EAAKyE,UAAiC,EAArB9O,KAAK+K,MAAMP,KACxC,SAASH,GACV,GAAIiyC,GAAMrtC,GAAQm0B,KAAK/4B,GAAM6B,QAC7B,OAAOlM,MAAK+K,OAAOkE,GAAQC,UAAU7E,IAASiyC,EAAMhoD,GAAK,GAAK,IAAMgoD,IAAQhoD,IAE9E2a,IAAQqtC,EAAM,KAAO/Y,EAAS74B,MAC9BuE,GAAQqtC,EAAM,KAAKxxC,IAAMy4B,EAASz4B,IAAIJ,MACtCuE,GAAQqtC,EAAM,UAAY,SAASjyC,GACjC,GAAIiyC,GAAMrtC,GAAQm0B,KAAK/4B,GAAM6B,QAC7B,OAAOlM,MAAK+K,OAAOkE,GAAQC,UAAU7E,IAASiyC,EAAMhoD,GAAK,GAAK,MAGlE2a,GAAQutC,KAAOvtC,GAAQwtC,OACvBxtC,GAAQytC,MAAQztC,GAAQwtC,OAAO/xC,MAC/BuE,GAAQytC,MAAM5xC,IAAMmE,GAAQwtC,OAAO3xC,IAAIJ,MACvCuE,GAAQ0tC,WAAa1tC,GAAQK,YAwN7B,IAAIhE,KACFsxC,IAAK,GACLjqD,EAAG,IACHkqD,EAAK,KACJlsC,GAAmB,UAAWM,GAAoB,IAkGrDtb,IAAGgS,OAAS,SAASA,GACnB,OACEm1C,aAAcp1C,GAAuBC,GACrCo1C,WAAY9xC,GAAqBtD,IAGrC,IAAIq1C,IAAiBrnD,GAAGgS,QACtBE,QAAS,IACTE,UAAW,IACXE,UAAY,GACZE,UAAY,IAAK,IACjBsF,SAAU,iBACVpD,KAAM,WACNtD,KAAM,WACN8G,SAAW,KAAM,MACjBE,MAAQ,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAC1EE,WAAa,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACvDE,QAAU,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACxHE,aAAe,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,QAE9F1Y,IAAGuN,OAAS85C,GAAeF,aAC3BnnD,GAAGsnD,OAEH9rC,GAAS7e,WACPwD,EAAG,EACH8Q,EAAG,EACH5N,IAAK,SAASgG,GACZoS,GAAYpS,EAAGtM,KAAKkU,EAAGs2C;AACvB9rC,GAAY8rC,GAAapnD,EAAGpD,KAAKoD,EAAGpD,MAChCA,KAAKoD,EAAGpD,KAAKkU,GAAKs2C,GAAat2C,EAAQlU,KAAKoD,EAAIonD,GAAat2C,GAEnEkT,MAAO,WACLpnB,KAAKoD,EAAIpD,KAAKkU,EAAI,GAEpBy0C,QAAS,WACP,MAAO3oD,MAAKoD,GAGhB,IAAIonD,IAAe,GAAI/rC,GAKvBxb,IAAGsnD,IAAIz9B,OAAS,SAAStrB,EAAQkB,GAC3BlB,GAAUipD,GAAwBzrC,eAAexd,EAAOqC,MAC1D4mD,GAAwBjpD,EAAOqC,MAAMrC,EAAQkB,GAE7Cmc,GAAsBrd,EAAQkB,GAQlC,IAAI+nD,KACFC,QAAS,SAASC,EAASjoD,GACzBmc,GAAsB8rC,EAAQ7rC,SAAUpc,IAE1CkoD,kBAAmB,SAASppD,EAAQkB,GAElC,IADA,GAAImoD,GAAWrpD,EAAOqpD,SAAUjpD,EAAI,GAAIC,EAAIgpD,EAAS9rD,SAC5C6C,EAAIC,GAAGgd,GAAsBgsC,EAASjpD,GAAGkd,SAAUpc,KAG5Dqc,IACF+rC,OAAQ,SAAStpD,EAAQkB,GACvBA,EAASmjB,UAEXklC,MAAO,SAASvpD,EAAQkB,GACtBlB,EAASA,EAAO0d,YAChBxc,EAAS6I,MAAM/J,EAAO,GAAIA,EAAO,GAAIA,EAAO,KAE9CwpD,WAAY,SAASxpD,EAAQkB,GAE3B,IADA,GAAIwc,GAAc1d,EAAO0d,YAAatd,EAAI,GAAIC,EAAIqd,EAAYngB,SACrD6C,EAAIC,GAAGL,EAAS0d,EAAYtd,GAAIc,EAAS6I,MAAM/J,EAAO,GAAIA,EAAO,GAAIA,EAAO,KAEvFypD,WAAY,SAASzpD,EAAQkB,GAC3Buc,GAAkBzd,EAAO0d,YAAaxc,EAAU,IAElDwoD,gBAAiB,SAAS1pD,EAAQkB,GAEhC,IADA,GAAIwc,GAAc1d,EAAO0d,YAAatd,EAAI,GAAIC,EAAIqd,EAAYngB,SACrD6C,EAAIC,GAAGod,GAAkBC,EAAYtd,GAAIc,EAAU,IAE9DyoD,QAAS,SAAS3pD,EAAQkB,GACxB6c,GAAqB/d,EAAO0d,YAAaxc,IAE3C0oD,aAAc,SAAS5pD,EAAQkB,GAE7B,IADA,GAAIwc,GAAc1d,EAAO0d,YAAatd,EAAI,GAAIC,EAAIqd,EAAYngB,SACrD6C,EAAIC,GAAG0d,GAAqBL,EAAYtd,GAAIc,IAEvD2oD,mBAAoB,SAAS7pD,EAAQkB,GAEnC,IADA,GAAI4oD,GAAa9pD,EAAO8pD,WAAY1pD,EAAI,GAAIC,EAAIypD,EAAWvsD,SAClD6C,EAAIC,GAAGgd,GAAsBysC,EAAW1pD,GAAIc,IAezDO,IAAGsnD,IAAI1c,KAAO,SAASrsC,GAGrB,MAFA+pD,IAAiB,EACjBtoD,GAAGsnD,IAAIz9B,OAAOtrB,EAAQkf,IACf6qC,GAET,IAAIA,IAAgBhrC,GAAqB,GAAI9B,IACzCiC,IACFmF,OAAQ,WACN0lC,IAAkB,EAAIl+C,IAExB9B,MAAOvJ,EACPqd,UAAWrd,EACXsd,QAAStd,EACTwd,aAAc,WACZe,GAAmB6G,QACnB1G,GAAYrB,UAAYK,IAE1BD,WAAY,WACV,GAAIouB,GAAO,EAAIttB,EACfgrC,KAAyB,EAAP1d,EAAW,EAAIxgC,GAAIwgC,EAAOA,EAC5CntB,GAAYrB,UAAYqB,GAAYpB,QAAUoB,GAAYnV,MAAQvJ,GAmDtEiB,IAAGsnD,IAAIiB,OAAS,WAsBd,QAASjgD,GAAMqU,EAAGC,GAChB4rC,EAAO7qD,KAAKoX,GAAU+H,EAAKH,EAAGwG,EAAKxG,IAC3BsG,EAAJrG,IAAQqG,EAAKrG,GACbA,EAAIwG,IAAIA,EAAKxG,GAEnB,QAAS8K,GAAU/K,EAAGC,GACpB,GAAIrL,GAAImM,IAAmBf,EAAItQ,GAAYuQ,EAAIvQ,IAC/C,IAAImU,EAAI,CACN,GAAIioC,GAAS5qC,GAAsB2C,EAAIjP,GAAIm3C,GAAeD,EAAO,IAAKA,EAAO,GAAI,GAAKE,EAAa9qC,GAAsB6qC,EAAYD,EACrIxqC,IAA0B0qC,GAC1BA,EAAazqC,GAAiByqC,EAC9B,IAAI9rC,GAAKF,EAAIisC,EAAIzoD,EAAI0c,EAAK,EAAI,EAAI,GAAIgsC,EAAKF,EAAW,GAAK97C,GAAa1M,EAAGkkB,EAAezS,GAAIiL,GAAM,GACpG,IAAIwH,GAAyBwkC,EAAT1oD,EAAIyoD,GAAgBzoD,EAAIwc,EAATksC,GAAa,CAC9C,GAAIC,GAAKH,EAAW,GAAK97C,EACrBi8C,GAAK1lC,IAAIA,EAAK0lC,OACb,IAAID,GAAMA,EAAK,KAAO,IAAM,IAAKxkC,GAAyBwkC,EAAT1oD,EAAIyoD,GAAgBzoD,EAAIwc,EAATksC,GAAa,CAClF,GAAIC,IAAMH,EAAW,GAAK97C,EACjBoW,GAAL6lC,IAAS7lC,EAAK6lC,OAEV7lC,GAAJrG,IAAQqG,EAAKrG,GACbA,EAAIwG,IAAIA,EAAKxG,EAEfyH,GACMukC,EAAJjsC,EACE4R,EAAMzR,EAAIH,GAAK4R,EAAMzR,EAAIqG,KAAKA,EAAKxG,GAEnC4R,EAAM5R,EAAGwG,GAAMoL,EAAMzR,EAAIqG,KAAKrG,EAAKH,GAGrCwG,GAAMrG,GACAA,EAAJH,IAAQG,EAAKH,GACbA,EAAIwG,IAAIA,EAAKxG,IAEbA,EAAIisC,EACFr6B,EAAMzR,EAAIH,GAAK4R,EAAMzR,EAAIqG,KAAKA,EAAKxG,GAEnC4R,EAAM5R,EAAGwG,GAAMoL,EAAMzR,EAAIqG,KAAKrG,EAAKH,OAK7CrU,GAAMqU,EAAGC,EAEX4D,GAAKjP,EAAGq3C,EAAKjsC,EAEf,QAASP,KACP2kB,EAAMz4B,MAAQof,EAEhB,QAASrL,KACPtH,EAAM,GAAK+H,EAAI/H,EAAM,GAAKoO,EAC1B4d,EAAMz4B,MAAQA,EACdkY,EAAK,KAEP,QAAS6K,GAAU1O,EAAGC,GACpB,GAAI4D,EAAI,CACN,GAAI3D,GAAKF,EAAIisC,CACbG,IAASn3C,GAAIiL,GAAM,IAAMA,GAAMA,EAAK,EAAI,IAAM,MAAQA,MACjDmsC,GAAMrsC,EAAGssC,EAAMrsC,CACtBa,IAAYnV,MAAMqU,EAAGC,GACrB8K,EAAU/K,EAAGC,GAEf,QAASkF,KACPrE,GAAYrB,YAEd,QAAS2F,KACPsJ,EAAU29B,EAAKC,GACfxrC,GAAYpB,UACRzK,GAAIm3C,GAAS1qC,KAAGvB,IAAOqG,EAAK,MAChCpO,EAAM,GAAK+H,EAAI/H,EAAM,GAAKoO,EAC1B3C,EAAK,KAEP,QAAS+N,GAAMzR,EAAIqG,GACjB,OAAQA,GAAMrG,GAAM,EAAIqG,EAAK,IAAMA,EAErC,QAAS+lC,GAAchuD,EAAGC,GACxB,MAAOD,GAAE,GAAKC,EAAE,GAElB,QAASguD,GAAY9tD,EAAG0Z,GACtB,MAAOA,GAAM,IAAMA,EAAM,GAAKA,EAAM,IAAM1Z,GAAKA,GAAK0Z,EAAM,GAAK1Z,EAAI0Z,EAAM,IAAMA,EAAM,GAAK1Z,EAnG5F,GAAIyhB,GAAImG,EAAIE,EAAIC,EAAIwlC,EAAII,EAAKC,EAAKzoC,EAAIuoC,EAAOP,EAAQzzC,EACjDgsB,GACFz4B,MAAOA,EACP8T,UAAWA,EACXC,QAASA,EACTE,aAAc,WACZwkB,EAAMz4B,MAAQ+iB,EACd0V,EAAM3kB,UAAY0F,EAClBif,EAAM1kB,QAAU0F,EAChBgnC,EAAQ,EACRtrC,GAAYlB,gBAEdC,WAAY,WACViB,GAAYjB,aACZukB,EAAMz4B,MAAQA,EACdy4B,EAAM3kB,UAAYA,EAClB2kB,EAAM1kB,QAAUA,EACS,EAArBiB,IAAwBR,IAAOqG,EAAK,KAAMF,IAAOG,EAAK,KAAc2lC,EAAQ1qC,GAAG+E,EAAK,IAAsB/E,GAAT0qC,IAAY9lC,EAAK,KACtHlO,EAAM,GAAK+H,EAAI/H,EAAM,GAAKoO,GAmF9B,OAAO,UAASukC,GACdtkC,EAAKD,IAAOrG,EAAKmG,OACjBulC,KACAxoD,GAAGsnD,IAAIz9B,OAAO69B,EAAS3mB,EACvB,IAAIniC,GAAI4pD,EAAO1sD,MACf,IAAI8C,EAAG,CACL4pD,EAAO7nC,KAAKuoC,EACZ,KAAK,GAA0B/tD,GAAtBwD,EAAI,EAAGzD,EAAIstD,EAAO,GAAO9X,GAAWx1C,GAAS0D,EAAJD,IAASA,EACzDxD,EAAIqtD,EAAO7pD,GACPwqD,EAAYhuD,EAAE,GAAID,IAAMiuD,EAAYhuD,EAAE,GAAID,IACxCqzB,EAAMrzB,EAAE,GAAIC,EAAE,IAAMozB,EAAMrzB,EAAE,GAAIA,EAAE,MAAKA,EAAE,GAAKC,EAAE,IAChDozB,EAAMpzB,EAAE,GAAID,EAAE,IAAMqzB,EAAMrzB,EAAE,GAAIA,EAAE,MAAKA,EAAE,GAAKC,EAAE,KAEpDu1C,EAAO/yC,KAAKzC,EAAIC,EAIpB,KAAK,GADiB0hB,GACgC1hB,EADlDiuD,SACKxqD,EAAI8xC,EAAO50C,OAAS,EAAG6C,EAAI,EAAGzD,EAAIw1C,EAAO9xC,GAAYA,GAALD,EAAQzD,EAAIC,IAAKwD,EACxExD,EAAIu1C,EAAO/xC,IACNke,EAAK0R,EAAMrzB,EAAE,GAAIC,EAAE,KAAOiuD,IAAMA,EAAOvsC,EAAIC,EAAK3hB,EAAE,GAAIgoB,EAAKjoB,EAAE,IAItE,MADAstD,GAASzzC,EAAQ,KACV+H,SAAmBmG,gCAAuDnG,EAAImG,IAAQE,EAAIC,QAGrGpjB,GAAGsnD,IAAI+B,SAAW,SAAS9qD,GACzBigB,GAAoBQ,GAAoBP,GAAoBC,GAAoBC,GAAoBM,GAAoBC,GAAoBC,GAAoBO,GAAoBC,GAAoBC,GAAoB,EAC5N5f,GAAGsnD,IAAIz9B,OAAOtrB,EAAQ6gB,GACtB,IAAI/jB,GAAIqkB,GAAmBrW,EAAIsW,GAAmBtgB,EAAIugB,GAAmBna,EAAIpK,EAAIA,EAAIgO,EAAIA,EAAIhK,EAAIA,CACjG,OAAQs2B,IAAJlwB,IACFpK,EAAI4jB,GAAmB5V,EAAI6V,GAAmB7f,EAAI8f,GAC1Bd,GAApBW,KAAuB3jB,EAAIojB,GAAmBpV,EAAIqV,GAAmBrf,EAAIsf,IAC7ElZ,EAAIpK,EAAIA,EAAIgO,EAAIA,EAAIhK,EAAIA,EAChBs2B,GAAJlwB,cAEG4E,KAAKuC,MAAMvD,EAAGhO,GAAKwR,GAAYtC,GAAQlL,EAAIgL,KAAKyC,KAAKrH,IAAMoH,IAEtE,IAAI2R,IAAmBQ,GAAmBP,GAAmBC,GAAmBC,GAAmBM,GAAmBC,GAAmBC,GAAmBO,GAAmBC,GAAmBC,GAC9LR,IACFwD,OAAQ7jB,EACRuJ,MAAOgW,GACPlC,UAAWwC,GACXvC,QAASgD,GACT9C,aAAc,WACZ6C,GAAgBhD,UAAYkD,IAE9B9C,WAAY,WACV4C,GAAgBhD,UAAYwC,KAqR5ByO,GAA0BjM,GAAYpB,GAASgD,GAA6BU,KAAuCtZ,IAAIA,GAAI,IAsP3H+d,GAAuB,GAC3BnoB,IAAGsnD,IAAI95B,WAAa,WAClB,GAAIzO,GAAIF,EAAI6H,EAAIC,EAAIkD,EAAQvJ,EAAMkN,GAChC3D,OAAQ,SAAS4D,GAIf,MAHI5D,KAAQA,EAAOqD,OAAQ,GAC3BrD,EAASvJ,EAAKmN,GACd5D,EAAOqD,OAAQ,EACRrD,GAET8K,OAAQ,SAAS33B,GACf,MAAKnB,WAAUC,QACfwkB,EAAO4G,GAAkBnI,GAAM/hB,EAAE,GAAG,GAAI6hB,GAAM7hB,EAAE,GAAG,GAAI0pB,GAAM1pB,EAAE,GAAG,GAAI2pB,GAAM3pB,EAAE,GAAG,IAC7E6sB,IAAQA,EAAOqD,OAAQ,EAAOrD,EAAS,MACpC2D,KAH2BzO,EAAIF,IAAQ6H,EAAIC,KAMtD,OAAO6G,GAAWmH,SAAW,EAAG,IAAO,IAAK,SA4J7C30B,GAAGsnD,IAAIgC,eAAiB,WACvB,MAAOhhC,IAAaI,MACnB6gC,IAAM7gC,GACT1oB,GAAGsnD,IAAIkC,OAAS,WACd,MAAOxpD,IAAGsnD,IAAIgC,iBAAiB9nC,QAAS,GAAI,IAAKwL,SAAU,GAAI,OAAQvE,WAAY,KAAM,OAAQ5W,MAAM,OAEzG7R,GAAGsnD,IAAImC,UAAY,WASjB,QAASA,GAAUxtC,GACjB,GAAI5gB,GAAI4gB,EAAY,GAAI5S,EAAI4S,EAAY,EAGxC,OAFA3T,GAAQ,KACPohD,EAAaruD,EAAGgO,GAAIf,IAAWqhD,EAAYtuD,EAAGgO,GAAIf,IAAUshD,EAAYvuD,EAAGgO,GACrEf,EAZT,GAGIA,GAIDohD,EAAcC,EAAaC,EAP1BC,EAAU7pD,GAAGsnD,IAAIkC,SACjBM,EAAS9pD,GAAGsnD,IAAIgC,iBAAiB9nC,QAAS,IAAK,IAAKwL,QAAS,GAAI,OAAQvE,WAAY,GAAI,KACzFshC,EAAS/pD,GAAGsnD,IAAIgC,iBAAiB9nC,QAAS,IAAK,IAAKwL,QAAS,GAAI,OAAQvE,WAAY,EAAG,KACjFuhC,GACT1hD,MAAO,SAASjN,EAAGgO,GACjBf,GAAUjN,EAAGgO,IAsEjB,OA7DAogD,GAAU1pC,OAAS,SAAS9D,GAC1B,GAAI7f,GAAIytD,EAAQh4C,QAASZ,EAAI44C,EAAQn8B,YAAaryB,GAAK4gB,EAAY,GAAKhL,EAAE,IAAM7U,EAAGiN,GAAK4S,EAAY,GAAKhL,EAAE,IAAM7U,CACjH,QAAQiN,GAAK,KAAW,KAAJA,GAAYhO,IAAM,OAAa,KAALA,EAAYyuD,EAASzgD,GAAK,MAAY,KAAJA,GAAYhO,IAAM,OAAa,KAALA,EAAY0uD,EAASF,GAAS9pC,OAAO9D,IAEjJwtC,EAAU5/B,OAAS,SAASA,GAC1B,GAAIogC,GAAgBJ,EAAQhgC,OAAOA,GAASqgC,EAAeJ,EAAOjgC,OAAOA,GAASsgC,EAAeJ,EAAOlgC,OAAOA,EAC/G,QACEvhB,MAAO,SAASjN,EAAGgO,GACjB4gD,EAAc3hD,MAAMjN,EAAGgO,GACvB6gD,EAAa5hD,MAAMjN,EAAGgO,GACtB8gD,EAAa7hD,MAAMjN,EAAGgO,IAExBuZ,OAAQ,WACNqnC,EAAcrnC,SACdsnC,EAAatnC,SACbunC,EAAavnC,UAEfxG,UAAW,WACT6tC,EAAc7tC,YACd8tC,EAAa9tC,YACb+tC,EAAa/tC,aAEfC,QAAS,WACP4tC,EAAc5tC,UACd6tC,EAAa7tC,UACb8tC,EAAa9tC,WAEfE,aAAc,WACZ0tC,EAAc1tC,eACd2tC,EAAa3tC,eACb4tC,EAAa5tC,gBAEfC,WAAY,WACVytC,EAAcztC,aACd0tC,EAAa1tC,aACb2tC,EAAa3tC,gBAInBitC,EAAUp2C,UAAY,SAASrW,GAC7B,MAAKnB,WAAUC,QACf+tD,EAAQx2C,UAAUrW,GAClB8sD,EAAOz2C,UAAUrW,GACjB+sD,EAAO12C,UAAUrW,GACVysD,GAJuBI,EAAQx2C,aAMxCo2C,EAAU53C,MAAQ,SAAS7U,GACzB,MAAKnB,WAAUC,QACf+tD,EAAQh4C,MAAM7U,GACd8sD,EAAOj4C,MAAU,IAAJ7U,GACb+sD,EAAOl4C,MAAM7U,GACNysD,EAAU/7B,UAAUm8B,EAAQn8B,cAJLm8B,EAAQh4C,SAMxC43C,EAAU/7B,UAAY,SAAS1wB,GAC7B,IAAKnB,UAAUC,OAAQ,MAAO+tD,GAAQn8B,WACtC,IAAItxB,GAAIytD,EAAQh4C,QAASxW,GAAK2B,EAAE,GAAIqM,GAAKrM,EAAE,EAI3C,OAHA0sD,GAAeG,EAAQn8B,UAAU1wB,GAAGwwB,aAAenyB,EAAI,KAAOe,EAAGiN,EAAI,KAAOjN,IAAOf,EAAI,KAAOe,EAAGiN,EAAI,KAAOjN,KAAOytB,OAAOmgC,GAAa1hD,MACvIqhD,EAAcG,EAAOp8B,WAAYryB,EAAI,KAAOe,EAAGiN,EAAI,KAAOjN,IAAKoxB,aAAenyB,EAAI,KAAOe,EAAIiiB,GAAGhV,EAAI,IAAMjN,EAAIiiB,KAAOhjB,EAAI,KAAOe,EAAIiiB,GAAGhV,EAAI,KAAOjN,EAAIiiB,MAAOwL,OAAOmgC,GAAa1hD,MACjLshD,EAAcG,EAAOr8B,WAAYryB,EAAI,KAAOe,EAAGiN,EAAI,KAAOjN,IAAKoxB,aAAenyB,EAAI,KAAOe,EAAIiiB,GAAGhV,EAAI,KAAOjN,EAAIiiB,KAAOhjB,EAAI,KAAOe,EAAIiiB,GAAGhV,EAAI,KAAOjN,EAAIiiB,MAAOwL,OAAOmgC,GAAa1hD,MAC3KmhD,GAEFA,EAAU53C,MAAM,MAEzB,IAAIu4C,IAAoBnhC,GA2BpBK,GAAqBE,GAAqBD,GAAqBE,GA3BnBL,IAC9C9gB,MAAOvJ,EACPqd,UAAWrd,EACXsd,QAAStd,EACTwd,aAAc,WACZ0M,GAAyB,EACzBG,GAAgBhN,UAAY4M,IAE9BxM,WAAY,WACV4M,GAAgBhN,UAAYgN,GAAgB/M,QAAU+M,GAAgB9gB,MAAQvJ,EAC9EqrD,IAAsBx4C,GAAIqX,GAAyB,KAkBnDohC,IACF/hD,MAAO+gB,GACPjN,UAAWrd,EACXsd,QAAStd,EACTwd,aAAcxd,EACdyd,WAAYzd,GAwDVorB,IACF7hB,MAAO2hB,GACP7N,UAAW8N,GACX7N,QAAS+N,GACT7N,aAAc,WACZ4N,GAAoB/N,UAAYiO,IAElC7N,WAAY,WACV2N,GAAoB7hB,MAAQ2hB,GAC5BE,GAAoB/N,UAAY8N,GAChCC,GAAoB9N,QAAU+N,IAoKlCpqB,IAAGsnD,IAAIre,KAAO,WAEZ,QAASA,GAAK1qC,GAMZ,MALIA,KACyB,kBAAhByrB,IAA4BsgC,EAActgC,aAAaA,EAAY3rB,MAAMtB,KAAMlB,YACrF0uD,GAAgBA,EAAYr9B,QAAOq9B,EAAcC,EAAcF,IACpEtqD,GAAGsnD,IAAIz9B,OAAOtrB,EAAQgsD,IAEjBD,EAAc97C,SAiCvB,QAAS2V,KAEP,MADAomC,GAAc,KACPthB,EA1CT,GAAuBxc,GAAYlC,EAASigC,EAAeF,EAAeC,EAAtEvgC,EAAc,GA4ClB,OAnCAif,GAAK2B,KAAO,SAASrsC,GAGnB,MAFA6rD,IAAqB,EACrBpqD,GAAGsnD,IAAIz9B,OAAOtrB,EAAQisD,EAAcphC,KAC7BghC,IAETnhB,EAAKogB,SAAW,SAAS9qD,GAGvB,MAFAkgB,IAAoBC,GAAoBC,GAAoBM,GAAoBC,GAAoBC,GAAoBO,GAAoBC,GAAoBC,GAAoB,EACpL5f,GAAGsnD,IAAIz9B,OAAOtrB,EAAQisD,EAAcrgC,KAC7BvK,IAAsBF,GAAoBE,GAAmBD,GAAoBC,IAAsBT,IAAsBF,GAAoBE,GAAmBD,GAAoBC,IAAsBR,IAAsBF,GAAoBE,GAAmBD,GAAoBC,eAExSsqB,EAAKsf,OAAS,SAAShqD,GAGrB,MAFAgrB,IAAsBE,KAAwBH,GAAsBE,QACpExpB,GAAGsnD,IAAIz9B,OAAOtrB,EAAQisD,EAAcH,OACzB/gC,GAAqBE,KAAyBD,GAAqBE,MAEhFwf,EAAKxc,WAAa,SAASzvB,GACzB,MAAKnB,WAAUC,QACf0uD,GAAiB/9B,EAAazvB,GAAKA,EAAE6sB,QAAUwC,GAAyBrvB,GAAKgB,EACtEmmB,KAFuBsI,GAIhCwc,EAAK1e,QAAU,SAASvtB,GACtB,MAAKnB,WAAUC,QACfwuD,EAAiC,OAAhB//B,EAAUvtB,GAAa,GAAI0sB,IAAsB,GAAIY,IAAmBttB,GAC9D,kBAAhBgtB,IAA4BsgC,EAActgC,YAAYA,GAC1D7F,KAHuBoG,GAKhC0e,EAAKjf,YAAc,SAAShtB,GAC1B,MAAKnB,WAAUC,QACfkuB,EAA2B,kBAANhtB,GAAmBA,GAAKstD,EAActgC,aAAahtB,IAAKA,GACtEisC,GAFuBjf,GAQzBif,EAAKxc,WAAWzsB,GAAGsnD,IAAImC,aAAal/B,QAAQ,OAUrDvqB,GAAGsnD,IAAI5qB,UAAY,SAAS4Q,GAC1B,OACEzjB,OAAQ,SAASA,GACf,GAAI6S,GAAY,GAAInQ,IAAiB1C,EACrC,KAAK,GAAIztB,KAAKkxC,GAAS5Q,EAAUtgC,GAAKkxC,EAAQlxC,EAC9C,OAAOsgC,MAObnQ,GAAiB5vB,WACf2L,MAAO,SAASjN,EAAGgO,GACjBtM,KAAK8sB,OAAOvhB,MAAMjN,EAAGgO,IAEvBuZ,OAAQ,WACN7lB,KAAK8sB,OAAOjH,UAEdxG,UAAW,WACTrf,KAAK8sB,OAAOzN,aAEdC,QAAS,WACPtf,KAAK8sB,OAAOxN,WAEdE,aAAc,WACZxf,KAAK8sB,OAAOtN,gBAEdC,WAAY,WACVzf,KAAK8sB,OAAOrN,eAuBhBxc,GAAGsnD,IAAI76B,WAAaD,GACpBxsB,GAAGsnD,IAAImD,kBAAoBjiC,IAsF1BxoB,GAAGsnD,IAAIoD,gBAAkB,WACxB,MAAOl+B,IAAkBmB,MACxB47B,IAAM57B,GAAuB5N,OAAS4N,GACzC3tB,GAAGsnD,IAAIt5B,SAAW,SAASxM,GAEzB,QAASmH,GAAQ1M,GAEf,MADAA,GAAcuF,EAAOvF,EAAY,GAAK5P,GAAY4P,EAAY,GAAK5P,IAC5D4P,EAAY,IAAMpP,GAAYoP,EAAY,IAAMpP,GAAYoP,EAMrE,MATAuF,GAASqL,GAAgBrL,EAAO,GAAK,IAAMnV,GAAYmV,EAAO,GAAKnV,GAAYmV,EAAO1lB,OAAS,EAAI0lB,EAAO,GAAKnV,GAAa,GAK5Hsc,EAAQ5I,OAAS,SAAS9D,GAExB,MADAA,GAAcuF,EAAOzB,OAAO9D,EAAY,GAAK5P,GAAY4P,EAAY,GAAK5P,IACnE4P,EAAY,IAAMpP,GAAYoP,EAAY,IAAMpP,GAAYoP,GAE9D0M,GAKTiF,GAAwB7N,OAAS4N,GA0BjC3tB,GAAGsnD,IAAIz1B,OAAS,WAEd,QAASA,KACP,GAAI7E,GAA2B,kBAAX2oB,GAAwBA,EAAOt3C,MAAMtB,KAAMlB,WAAa85C,EAAQn0B,EAASqL,IAAiBG,EAAO,GAAK3gB,IAAa2gB,EAAO,GAAK3gB,GAAY,GAAG0T,OAAQ6B,IAO1K,OANAxB,GAAY,KAAM,KAAM,GACtB9X,MAAO,SAASjN,EAAGgO,GACjBuY,EAAKjkB,KAAKtC,EAAImmB,EAAOnmB,EAAGgO,IACxBhO,EAAE,IAAMwR,GAAYxR,EAAE,IAAMwR,OAI9BjM,KAAM,UACNqb,aAAe2F,IAXnB,GAAuB2M,GAAsBnO,EAAzCu1B,GAAW,EAAG,GAAYtiC,EAAY,CA6B1C,OAfAwe,GAAO8jB,OAAS,SAASt6C,GACvB,MAAKQ,WAAUC,QACf65C,EAASt6C,EACFw2B,GAFuB8jB,GAIhC9jB,EAAOtD,MAAQ,SAASlzB,GACtB,MAAKQ,WAAUC,QACfskB,EAAcoG,IAA0B+H,GAASlzB,GAAKgR,GAAYgH,EAAYhH,IACvEwlB,GAFuBtD,GAIhCsD,EAAOxe,UAAY,SAASrW,GAC1B,MAAKnB,WAAUC,QACfskB,EAAcoG,GAAyB+H,EAAQliB,IAAagH,GAAarW,GAAKqP,IACvEwlB,GAFuBxe,GAIzBwe,EAAOtD,MAAM,KA0BtBvuB,GAAGsnD,IAAIh4B,SAAW,SAASp0B,EAAGC,GAC5B,GAAyN8V,GAArN05C,GAAMxvD,EAAE,GAAKD,EAAE,IAAMmR,GAAY4W,EAAK/nB,EAAE,GAAKmR,GAAY+W,EAAKjoB,EAAE,GAAKkR,GAAYu+C,EAAQvgD,KAAKU,IAAI4/C,GAAKn7B,EAAQnlB,KAAK+B,IAAIu+C,GAAKxtC,EAAQ9S,KAAKU,IAAIkY,GAAK5F,EAAQhT,KAAK+B,IAAI6W,GAAK4nC,EAAQxgD,KAAKU,IAAIqY,GAAKG,EAAQlZ,KAAK+B,IAAIgX,EACpN,OAAO/Y,MAAKuC,MAAMvC,KAAKyC,MAAMmE,EAAIsS,EAAQqnC,GAAS35C,GAAKA,EAAIoM,EAAQwtC,EAAQ1tC,EAAQoG,EAAQiM,GAASve,GAAIkM,EAAQ0tC,EAAQxtC,EAAQkG,EAAQiM,IAE1IxvB,GAAGsnD,IAAIwD,UAAY,WAEjB,QAASA,KACP,OACElqD,KAAM,kBACNqb,YAAa6G,KAGjB,QAASA,KACP,MAAO9iB,IAAG+U,MAAM1K,KAAKmH,KAAKu5C,EAAKC,GAAMA,EAAIC,EAAID,GAAIhoD,IAAI0U,GAAG9X,OAAOI,GAAG+U,MAAM1K,KAAKmH,KAAK05C,EAAKC,GAAMA,EAAIC,EAAID,GAAInoD,IAAI8W,IAAIla,OAAOI,GAAG+U,MAAM1K,KAAKmH,KAAKuN,EAAKiI,GAAMA,EAAIN,EAAIM,GAAIhgB,OAAO,SAAS3L,GAChL,MAAOuW,IAAIvW,EAAI2vD,GAAM3sC,KACpBrb,IAAI3H,IAAIuE,OAAOI,GAAG+U,MAAM1K,KAAKmH,KAAKqN,EAAKoI,GAAMA,EAAIN,EAAIM,GAAIjgB,OAAO,SAASqC,GAC1E,MAAOuI,IAAIvI,EAAI8hD,GAAM9sC,KACpBrb,IAAIqG,IAZT,GAAIqd,GAAI3H,EAAIksC,EAAIF,EAAIpkC,EAAI9H,EAAIusC,EAAIF,EAAyC7vD,EAAGgO,EAAGqO,EAAGoC,EAA9CkN,EAAK,GAAIC,EAAKD,EAAIgkC,EAAK,GAAIG,EAAK,IAAiB93C,EAAY,GAuEjG,OAzDAy3C,GAAUhoC,MAAQ,WAChB,MAAOA,KAAQ9f,IAAI,SAASiZ,GAC1B,OACErb,KAAM,aACNqb,YAAaA,MAInB6uC,EAAUO,QAAU,WAClB,OACEzqD,KAAM,UACNqb,aAAevE,EAAEqzC,GAAInrD,OAAOka,EAAEsxC,GAAI9tD,MAAM,GAAIoa,EAAEuzC,GAAIr4C,UAAUtV,MAAM,GAAIwc,EAAEoxC,GAAIt4C,UAAUtV,MAAM,OAGhGwtD,EAAUn2B,OAAS,SAAS33B,GAC1B,MAAKnB,WAAUC,OACRgvD,EAAUQ,YAAYtuD,GAAGuuD,YAAYvuD,GADd8tD,EAAUS,eAG1CT,EAAUQ,YAAc,SAAStuD,GAC/B,MAAKnB,WAAUC,QACfivD,GAAM/tD,EAAE,GAAG,GAAIiuD,GAAMjuD,EAAE,GAAG,GAC1BkuD,GAAMluD,EAAE,GAAG,GAAIouD,GAAMpuD,EAAE,GAAG,GACtB+tD,EAAKE,IAAIjuD,EAAI+tD,EAAIA,EAAKE,EAAIA,EAAKjuD,GAC/BkuD,EAAKE,IAAIpuD,EAAIkuD,EAAIA,EAAKE,EAAIA,EAAKpuD,GAC5B8tD,EAAUz3C,UAAUA,MALO03C,EAAIG,IAAQD,EAAIG,KAOpDN,EAAUS,YAAc,SAASvuD,GAC/B,MAAKnB,WAAUC,QACfijB,GAAM/hB,EAAE,GAAG,GAAI0pB,GAAM1pB,EAAE,GAAG,GAC1B6hB,GAAM7hB,EAAE,GAAG,GAAI2pB,GAAM3pB,EAAE,GAAG,GACtB+hB,EAAK2H,IAAI1pB,EAAI+hB,EAAIA,EAAK2H,EAAIA,EAAK1pB,GAC/B6hB,EAAK8H,IAAI3pB,EAAI6hB,EAAIA,EAAK8H,EAAIA,EAAK3pB,GAC5B8tD,EAAUz3C,UAAUA,MALO0L,EAAIF,IAAQ6H,EAAIC,KAOpDmkC,EAAUt2C,KAAO,SAASxX,GACxB,MAAKnB,WAAUC,OACRgvD,EAAUU,UAAUxuD,GAAGyuD,UAAUzuD,GADV8tD,EAAUW,aAG1CX,EAAUU,UAAY,SAASxuD,GAC7B,MAAKnB,WAAUC,QACfkvD,GAAMhuD,EAAE,GAAImuD,GAAMnuD,EAAE,GACb8tD,IAFyBE,EAAIG,IAItCL,EAAUW,UAAY,SAASzuD,GAC7B,MAAKnB,WAAUC,QACfkrB,GAAMhqB,EAAE,GAAIiqB,GAAMjqB,EAAE,GACb8tD,IAFyB9jC,EAAIC,IAItC6jC,EAAUz3C,UAAY,SAASrW,GAC7B,MAAKnB,WAAUC,QACfuX,GAAarW,EACb3B,EAAIozB,GAAkB5P,EAAI8H,EAAI,IAC9Btd,EAAIqlB,GAAkB3P,EAAI2H,EAAIrT,GAC9BqE,EAAI+W,GAAkBy8B,EAAIE,EAAI,IAC9BtxC,EAAI4U,GAAkBq8B,EAAIE,EAAI53C,GACvBy3C,GANuBz3C,GAQzBy3C,EAAUQ,cAAgB,KAAM,IAAMjtC,KAAO,IAAK,GAAKA,MAAOktC,cAAgB,KAAM,IAAMltC,KAAO,IAAK,GAAKA,OAwBpHre,GAAGsnD,IAAIoE,SAAW,WAEhB,QAASA,KACP,OACE9qD,KAAM,aACNqb,aAAe0vC,GAAWxtD,EAAOE,MAAMtB,KAAMlB,WAAY+vD,GAAW1tD,EAAOG,MAAMtB,KAAMlB,aAJ3F,GAAwB8vD,GAA6BC,EAAjDztD,EAASwwB,GAAoBzwB,EAAS0wB,EAuB1C,OAhBA88B,GAASp8B,SAAW,WAClB,MAAOtvB,IAAGsnD,IAAIh4B,SAASq8B,GAAWxtD,EAAOE,MAAMtB,KAAMlB,WAAY+vD,GAAW1tD,EAAOG,MAAMtB,KAAMlB,aAEjG6vD,EAASvtD,OAAS,SAASnB,GACzB,MAAKnB,WAAUC,QACfqC,EAASnB,EAAG2uD,EAAuB,kBAAN3uD,GAAmB,KAAOA,EAChD0uD,GAFuBvtD,GAIhCutD,EAASxtD,OAAS,SAASlB,GACzB,MAAKnB,WAAUC,QACfoC,EAASlB,EAAG4uD,EAAuB,kBAAN5uD,GAAmB,KAAOA,EAChD0uD,GAFuBxtD,GAIhCwtD,EAASr4C,UAAY,WACnB,MAAOxX,WAAUC,OAAS4vD,EAAW,GAEhCA,GAET1rD,GAAGsnD,IAAIlnC,YAAc,SAASjiB,EAAQD,GACpC,MAAO2wB,IAAmB1wB,EAAO,GAAKkO,GAAYlO,EAAO,GAAKkO,GAAYnO,EAAO,GAAKmO,GAAYnO,EAAO,GAAKmO,KAahHrM,GAAGsnD,IAAIxrD,OAAS,SAASyC,GAGvB,MAFAkxB,IAAmB,EACnBzvB,GAAGsnD,IAAIz9B,OAAOtrB,EAAQmxB,IACfD,GAET,IAAIA,IACAC,IACF9M,OAAQ7jB,EACRuJ,MAAOvJ,EACPqd,UAAWmT,GACXlT,QAAStd,EACTwd,aAAcxd,EACdyd,WAAYzd,GA4BV8sD,GAA4Bl8B,GAAiB,SAASm8B,GACxD,MAAOzhD,MAAKyC,KAAK,GAAK,EAAIg/C,KACzB,SAASljC,GACV,MAAO,GAAIve,KAAKI,KAAKme,EAAI,MAE1B5oB,GAAGsnD,IAAIyE,mBAAqB,WAC3B,MAAOv/B,IAAkBq/B,MACxBtC,IAAMsC,EACT,IAAIG,IAA8Br8B,GAAiB,SAASm8B,GAC1D,GAAI3oD,GAAIkH,KAAKC,KAAKwhD,EAClB,OAAO3oD,IAAKA,EAAIkH,KAAKU,IAAI5H,IACxBnF,IACFgC,GAAGsnD,IAAI2E,qBAAuB,WAC7B,MAAOz/B,IAAkBw/B,MACxBzC,IAAMyC,IAqBRhsD,GAAGsnD,IAAI4E,eAAiB,WACvB,MAAO5jC,IAAa0H,MACnBu5B,IAAMv5B,IAcRhwB,GAAGsnD,IAAI6E,iBAAmB,WACzB,MAAO7jC,IAAa8H,MACnBm5B,IAAMn5B,EACT,IAAIg8B,IAAkBz8B,GAAiB,SAASm8B,GAC9C,MAAO,GAAIA,GACVzhD,KAAKoZ,OACPzjB,GAAGsnD,IAAI+E,SAAW,WACjB,MAAO7/B,IAAkB4/B,MACxB7C,IAAM6C,GAITj8B,GAAgBpQ,OAAS,SAAS1kB,EAAGgO,GACnC,OAAShO,EAAG,EAAIgP,KAAKoZ,KAAKpZ,KAAKM,IAAItB,IAAMmB,MA0B1CxK,GAAGsnD,IAAIgF,SAAW,WACjB,MAAOh8B,IAA0BH,MAChCo5B,IAAMp5B,EACT,IAAIo8B,IAAsB58B,GAAiB,WACzC,MAAO,IACNtlB,KAAKI,OACPzK,GAAGsnD,IAAIkF,aAAe,WACrB,MAAOhgC,IAAkB+/B,MACxBhD,IAAMgD,EACT,IAAIE,IAAuB98B,GAAiB,SAASm8B,GACnD,MAAO,IAAK,EAAIA,IACf,SAASljC,GACV,MAAO,GAAIve,KAAKoZ,KAAKmF,MAEtB5oB,GAAGsnD,IAAIoF,cAAgB,WACtB,MAAOlgC,IAAkBigC,MACxBlD,IAAMkD,GAITj8B,GAA0BzQ,OAAS,SAAS1kB,EAAGgO,GAC7C,QAAUA,EAAG,EAAIgB,KAAKoZ,KAAKpZ,KAAKM,IAAItP,IAAMmP,MAE3CxK,GAAGsnD,IAAIqF,mBAAqB,WAC3B,GAAIlgC,GAAa6D,GAA0BE,IAA4BxD,EAASP,EAAWO,OAAQxL,EAASiL,EAAWjL,MAQvH,OAPAiL,GAAWO,OAAS,SAAShwB,GAC3B,MAAOA,GAAIgwB,IAAUhwB,EAAE,GAAIA,EAAE,MAASA,EAAIgwB,KAAYhwB,EAAE,IAAKA,EAAE,MAEjEyvB,EAAWjL,OAAS,SAASxkB,GAC3B,MAAOA,GAAIwkB,GAASxkB,EAAE,GAAIA,EAAE,GAAIA,EAAElB,OAAS,EAAIkB,EAAE,GAAK,GAAK,MAASA,EAAIwkB,KACtExkB,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAK,MAEhBwkB,GAAS,EAAG,EAAG,OACrB+nC,IAAM/4B,GACTxwB,GAAG4sD,QAOH5sD,GAAG4sD,KAAKh8B,KAAO,SAASi8B,GAGtB,QAASj8B,GAAK5rB,GACZ,GAAIA,EAAKlJ,OAAS,EAAG,QACrB,IAA4C6C,GAAxCg4B,EAAK1oB,GAAW5S,GAAIu7B,EAAK3oB,GAAW5E,GAAOzK,EAAIoG,EAAKlJ,OAAQglB,KAAagsC,IAC7E,KAAKnuD,EAAI,EAAOC,EAAJD,EAAOA,IACjBmiB,EAAOnjB,OAAQg5B,EAAGhwB,KAAK5J,KAAMiI,EAAKrG,GAAIA,IAAKi4B,EAAGjwB,KAAK5J,KAAMiI,EAAKrG,GAAIA,GAAIA,GAGxE,KADAmiB,EAAOH,KAAKmQ,IACPnyB,EAAI,EAAOC,EAAJD,EAAOA,IAAKmuD,EAAcnvD,MAAOmjB,EAAOniB,GAAG,IAAKmiB,EAAOniB,GAAG,IACtE,IAAIouD,GAAQp8B,GAAkB7P,GAASksC,EAAQr8B,GAAkBm8B,GAC7DG,EAAWD,EAAM,KAAOD,EAAM,GAAIG,EAAYF,EAAMA,EAAMlxD,OAAS,KAAOixD,EAAMA,EAAMjxD,OAAS,GAAIsmB,IACvG,KAAKzjB,EAAIouD,EAAMjxD,OAAS,EAAG6C,GAAK,IAAKA,EAAGyjB,EAAQzkB,KAAKqH,EAAK8b,EAAOisC,EAAMpuD,IAAI,IAC3E,KAAKA,GAAKsuD,EAAUtuD,EAAIquD,EAAMlxD,OAASoxD,IAAavuD,EAAGyjB,EAAQzkB,KAAKqH,EAAK8b,EAAOksC,EAAMruD,IAAI,IAC1F,OAAOyjB,GAdT,GAAI/mB,GAAIo1B,GAAgBpnB,EAAIqnB,EAC5B,OAAI70B,WAAUC,OAAe80B,EAAKi8B,IAelCj8B,EAAKv1B,EAAI,SAAS2B,GAChB,MAAOnB,WAAUC,QAAUT,EAAI2B,EAAG4zB,GAAQv1B,GAE5Cu1B,EAAKvnB,EAAI,SAASrM,GAChB,MAAOnB,WAAUC,QAAUuN,EAAIrM,EAAG4zB,GAAQvnB,GAErCunB,IAaT5wB,GAAG4sD,KAAKxqC,QAAU,SAASnG,GAEzB,MADAlb,IAAYkb,EAAakxC,IAClBlxC,EAET,IAAIkxC,IAA2BntD,GAAG4sD,KAAKxqC,QAAQzlB,YAC/CwwD,IAAyBviB,KAAO,WAE9B,IADA,GAA6B1vC,GAAzByD,EAAI,GAAIC,EAAI7B,KAAKjB,OAAWX,EAAI4B,KAAK6B,EAAI,GAAIgsC,EAAO,IAC/CjsC,EAAIC,GACX1D,EAAIC,EACJA,EAAI4B,KAAK4B,GACTisC,GAAQ1vC,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,EAEjC,OAAc,GAAPyvC,GAETuiB,GAAyB9D,SAAW,SAASjtD,GAC3C,GAA2ClB,GAAoBiI,EAA3DxE,EAAI,GAAIC,EAAI7B,KAAKjB,OAAQT,EAAI,EAAGgO,EAAI,EAAMlO,EAAI4B,KAAK6B,EAAI,EAE3D,KADK/C,UAAUC,SAAQM,EAAI,IAAM,EAAIW,KAAK6tC,WACjCjsC,EAAIC,GACX1D,EAAIC,EACJA,EAAI4B,KAAK4B,GACTwE,EAAIjI,EAAE,GAAKC,EAAE,GAAKA,EAAE,GAAKD,EAAE,GAC3BG,IAAMH,EAAE,GAAKC,EAAE,IAAMgI,EACrBkG,IAAMnO,EAAE,GAAKC,EAAE,IAAMgI,CAEvB,QAAS9H,EAAIe,EAAGiN,EAAIjN,IAEtB+wD,GAAyB7sC,KAAO,SAASD,GAEvC,IADA,GAAI4jB,GAAuGz+B,EAAGC,EAAoBtK,EAAGgI,EAAGjH,EAA7HggB,EAASsV,GAAsBnR,GAAU1hB,EAAI,GAAIC,EAAI7B,KAAKjB,OAAS01B,GAAsBz0B,MAAa7B,EAAI6B,KAAK6B,EAAI,KACrHD,EAAIC,GAAG,CAMd,IALAqlC,EAAQ5jB,EAAQ/iB,QAChB+iB,EAAQvkB,OAAS,EACjBX,EAAI4B,KAAK4B,GACTwE,EAAI8gC,GAAOx+B,EAAIw+B,EAAMnoC,OAASogB,GAAU,GACxC1W,EAAI,KACKA,EAAIC,GACXvJ,EAAI+nC,EAAMz+B,GACNurB,GAAsB70B,EAAGhB,EAAGC,IACzB41B,GAAsB5tB,EAAGjI,EAAGC,IAC/BklB,EAAQ1iB,KAAKqzB,GAAyB7tB,EAAGjH,EAAGhB,EAAGC,IAEjDklB,EAAQ1iB,KAAKzB,IACJ60B,GAAsB5tB,EAAGjI,EAAGC,IACrCklB,EAAQ1iB,KAAKqzB,GAAyB7tB,EAAGjH,EAAGhB,EAAGC,IAEjDgI,EAAIjH,CAEFggB,IAAQmE,EAAQ1iB,KAAK0iB,EAAQ,IACjCnlB,EAAIC,EAEN,MAAOklB,GAaT,IAAI4V,IAAsBf,GAAsB/C,GAAuD4D,GAA4BD,GAA3D9D,MAAmF6D,KAgI3JrB,IAAoB73B,UAAUy4B,QAAU,WAEtC,IADA,GAA0DzD,GAAtDmD,EAAY/3B,KAAK03B,MAAOI,EAAYC,EAAUh5B,OAC3C+4B,KACLlD,EAAOmD,EAAUD,GAAWlD,KACvBA,EAAKx2B,GAAMw2B,EAAKz2B,GAAG45B,EAAUO,OAAOR,EAAW,EAGtD,OADAC,GAAUnU,KAAK6U,IACRV,EAAUh5B,QA4MnBw5B,GAAwB34B,WACtBokB,MAAO,WACL,MAAOhkB,MAAK40B,KAAKvyB,IAAMrC,KAAK60B,KAAO70B,KAAK40B,KAAKz2B,EAAI6B,KAAK40B,KAAKx2B,GAE7D65B,IAAK,WACH,MAAOj4B,MAAK40B,KAAKvyB,IAAMrC,KAAK60B,KAAO70B,KAAK40B,KAAKx2B,EAAI4B,KAAK40B,KAAKz2B,IAS/D47B,GAA4Bn6B,WAC1Bg3B,OAAQ,SAASzf,EAAOvZ,GACtB,GAAIiK,GAAQwoD,EAASC,CACrB,IAAIn5C,EAAO,CAKT,GAJAvZ,EAAK43B,EAAIre,EACTvZ,EAAK83B,EAAIve,EAAMue,EACXve,EAAMue,IAAGve,EAAMue,EAAEF,EAAI53B,GACzBuZ,EAAMue,EAAI93B,EACNuZ,EAAMuf,EAAG,CAEX,IADAvf,EAAQA,EAAMuf,EACPvf,EAAM+B,GAAG/B,EAAQA,EAAM+B,CAC9B/B,GAAM+B,EAAItb,MAEVuZ,GAAMuf,EAAI94B,CAEZiK,GAASsP,MACAnX,MAAKC,GACdkX,EAAQgjB,GAA6Bn6B,KAAKC,GAC1CrC,EAAK43B,EAAI,KACT53B,EAAK83B,EAAIve,EACTA,EAAMqe,EAAIre,EAAM+B,EAAItb,EACpBiK,EAASsP,IAETvZ,EAAK43B,EAAI53B,EAAK83B,EAAI,KAClB11B,KAAKC,EAAIrC,EACTiK,EAAS,KAMX,KAJAjK,EAAKsb,EAAItb,EAAK84B,EAAI,KAClB94B,EAAK6b,EAAI5R,EACTjK,EAAKkuB,GAAI,EACT3U,EAAQvZ,EACDiK,GAAUA,EAAOikB,GACtBukC,EAAUxoD,EAAO4R,EACb5R,IAAWwoD,EAAQn3C,GACrBo3C,EAAQD,EAAQ35B,EACZ45B,GAASA,EAAMxkC,GACjBjkB,EAAOikB,EAAIwkC,EAAMxkC,GAAI,EACrBukC,EAAQvkC,GAAI,EACZ3U,EAAQk5C,IAEJl5C,IAAUtP,EAAO6uB,IACnBsD,GAAkCh6B,KAAM6H,GACxCsP,EAAQtP,EACRA,EAASsP,EAAMsC,GAEjB5R,EAAOikB,GAAI,EACXukC,EAAQvkC,GAAI,EACZoO,GAAmCl6B,KAAMqwD,MAG3CC,EAAQD,EAAQn3C,EACZo3C,GAASA,EAAMxkC,GACjBjkB,EAAOikB,EAAIwkC,EAAMxkC,GAAI,EACrBukC,EAAQvkC,GAAI,EACZ3U,EAAQk5C,IAEJl5C,IAAUtP,EAAOqR,IACnBghB,GAAmCl6B,KAAM6H,GACzCsP,EAAQtP,EACRA,EAASsP,EAAMsC,GAEjB5R,EAAOikB,GAAI,EACXukC,EAAQvkC,GAAI,EACZkO,GAAkCh6B,KAAMqwD,KAG5CxoD,EAASsP,EAAMsC,CAEjBzZ,MAAKC,EAAE6rB,GAAI,GAEbhpB,OAAQ,SAASlF,GACXA,EAAK83B,IAAG93B,EAAK83B,EAAEF,EAAI53B,EAAK43B,GACxB53B,EAAK43B,IAAG53B,EAAK43B,EAAEE,EAAI93B,EAAK83B,GAC5B93B,EAAK83B,EAAI93B,EAAK43B,EAAI,IAClB,IAAqB+6B,GAAwC96B,EAAM+uB,EAA/D38C,EAASjK,EAAK6b,EAAY9a,EAAOf,EAAKsb,EAAGja,EAAQrB,EAAK84B,CA6B1D,IA5B4DjB,EAAvD92B,EAA8BM,EAAgCk7B,GAA6Bl7B,GAA/CN,EAA/BM,EACd4I,EACEA,EAAOqR,IAAMtb,EAAMiK,EAAOqR,EAAIuc,EAAW5tB,EAAO6uB,EAAIjB,EAExDz1B,KAAKC,EAAIw1B,EAEP92B,GAAQM,GACVulD,EAAM/uB,EAAK3J,EACX2J,EAAK3J,EAAIluB,EAAKkuB,EACd2J,EAAKvc,EAAIva,EACTA,EAAK8a,EAAIgc,EACLA,IAASx2B,GACX4I,EAAS4tB,EAAKhc,EACdgc,EAAKhc,EAAI7b,EAAK6b,EACd7b,EAAO63B,EAAKiB,EACZ7uB,EAAOqR,EAAItb,EACX63B,EAAKiB,EAAIz3B,EACTA,EAAMwa,EAAIgc,IAEVA,EAAKhc,EAAI5R,EACTA,EAAS4tB,EACT73B,EAAO63B,EAAKiB,KAGd8tB,EAAM5mD,EAAKkuB,EACXluB,EAAO63B,GAEL73B,IAAMA,EAAK6b,EAAI5R,IACf28C,EAAJ,CACA,GAAI5mD,GAAQA,EAAKkuB,EAEf,YADAluB,EAAKkuB,GAAI,EAGX,GAAG,CACD,GAAIluB,IAASoC,KAAKC,EAAG,KACrB,IAAIrC,IAASiK,EAAOqR,GAQlB,GAPAq3C,EAAU1oD,EAAO6uB,EACb65B,EAAQzkC,IACVykC,EAAQzkC,GAAI,EACZjkB,EAAOikB,GAAI,EACXkO,GAAkCh6B,KAAM6H,GACxC0oD,EAAU1oD,EAAO6uB,GAEf65B,EAAQr3C,GAAKq3C,EAAQr3C,EAAE4S,GAAKykC,EAAQ75B,GAAK65B,EAAQ75B,EAAE5K,EAAG,CACnDykC,EAAQ75B,GAAM65B,EAAQ75B,EAAE5K,IAC3BykC,EAAQr3C,EAAE4S,GAAI,EACdykC,EAAQzkC,GAAI,EACZoO,GAAmCl6B,KAAMuwD,GACzCA,EAAU1oD,EAAO6uB,GAEnB65B,EAAQzkC,EAAIjkB,EAAOikB,EACnBjkB,EAAOikB,EAAIykC,EAAQ75B,EAAE5K,GAAI,EACzBkO,GAAkCh6B,KAAM6H,GACxCjK,EAAOoC,KAAKC,CACZ,YAUF,IAPAswD,EAAU1oD,EAAOqR,EACbq3C,EAAQzkC,IACVykC,EAAQzkC,GAAI,EACZjkB,EAAOikB,GAAI,EACXoO,GAAmCl6B,KAAM6H,GACzC0oD,EAAU1oD,EAAOqR,GAEfq3C,EAAQr3C,GAAKq3C,EAAQr3C,EAAE4S,GAAKykC,EAAQ75B,GAAK65B,EAAQ75B,EAAE5K,EAAG,CACnDykC,EAAQr3C,GAAMq3C,EAAQr3C,EAAE4S,IAC3BykC,EAAQ75B,EAAE5K,GAAI,EACdykC,EAAQzkC,GAAI,EACZkO,GAAkCh6B,KAAMuwD,GACxCA,EAAU1oD,EAAOqR,GAEnBq3C,EAAQzkC,EAAIjkB,EAAOikB,EACnBjkB,EAAOikB,EAAIykC,EAAQr3C,EAAE4S,GAAI,EACzBoO,GAAmCl6B,KAAM6H,GACzCjK,EAAOoC,KAAKC,CACZ,OAGJswD,EAAQzkC,GAAI,EACZluB,EAAOiK,EACPA,EAASA,EAAO4R,SACR7b,EAAKkuB,EACXluB,KAAMA,EAAKkuB,GAAI,MAiEvB7oB,GAAG4sD,KAAKW,QAAU,SAASzsC,GAGzB,QAASysC,GAAQvoD,GACf,GAAIwoD,GAAW,GAAIp5C,OAAMpP,EAAKlJ,QAASijB,EAAKyO,EAAW,GAAG,GAAI3O,EAAK2O,EAAW,GAAG,GAAI9G,EAAK8G,EAAW,GAAG,GAAI7G,EAAK6G,EAAW,GAAG,EAQ/H,OAPA2J,IAAgBC,EAAMpyB,GAAOwoB,GAAYyH,MAAMvlB,QAAQ,SAASklB,EAAMj2B,GACpE,GAAI81B,GAAQG,EAAKH,MAAO7C,EAAOgD,EAAKhD,KAAMxP,EAAUorC,EAAS7uD,GAAK81B,EAAM34B,OAAS24B,EAAMzxB,IAAI,SAAS5C,GAClG,GAAID,GAAIC,EAAE2gB,OACV,QAAS5gB,EAAE9E,EAAG8E,EAAEkJ,KACbuoB,EAAKv2B,GAAK0jB,GAAM6S,EAAKv2B,GAAKqrB,GAAMkL,EAAKvoB,GAAKwV,GAAM+S,EAAKvoB,GAAKsd,IAAS5H,EAAI4H,IAAQD,EAAIC,IAAQD,EAAI7H,IAAQE,EAAIF,MAChHuD,GAAQ9Z,MAAQtD,EAAKrG,KAEhB6uD,EAET,QAASp2B,GAAMpyB,GACb,MAAOA,GAAKhC,IAAI,SAAS9G,EAAGyC,GAC1B,OACEtD,EAAGgP,KAAKqB,MAAMirB,EAAGz6B,EAAGyC,GAAK0f,IAAKA,GAC9BhV,EAAGgB,KAAKqB,MAAMkrB,EAAG16B,EAAGyC,GAAK0f,IAAKA,GAC9B1f,EAAGA,KAlBT,GAAItD,GAAIo1B,GAAgBpnB,EAAIqnB,GAAgBiG,EAAKt7B,EAAGu7B,EAAKvtB,EAAGmkB,EAAaigC,EACzE,OAAI3sC,GAAeysC,EAAQzsC,IAqB3BysC,EAAQvuB,MAAQ,SAASh6B,GACvB,MAAOmyB,IAAgBC,EAAMpyB,IAAOyvB,MAAMztB,OAAO,SAAS2qB,GACxD,MAAOA,GAAKvyB,GAAKuyB,EAAK1lB,IACrBjJ,IAAI,SAAS2uB,GACd,OACExzB,OAAQ6G,EAAK2sB,EAAKvyB,EAAET,GACpBT,OAAQ8G,EAAK2sB,EAAK1lB,EAAEtN,OAI1B4uD,EAAQG,UAAY,SAAS1oD,GAC3B,GAAI0oD,KAaJ,OAZAv2B,IAAgBC,EAAMpyB,IAAOiwB,MAAMvlB,QAAQ,SAASklB,EAAMj2B,GAExD,IADA,GAAuGgC,GAAIgtD,EAAvG/7B,EAAOgD,EAAKhD,KAAM6C,EAAQG,EAAKH,MAAM9T,KAAK6U,IAA+BhwB,EAAI,GAAIC,EAAIgvB,EAAM34B,OAAgB4E,EAAK+zB,EAAMhvB,EAAI,GAAGksB,KAAM4P,EAAK7gC,EAAGtB,IAAMwyB,EAAOlxB,EAAGuL,EAAIvL,EAAGtB,IAC7JoG,EAAIC,GACX9E,EAAKD,EACLitD,EAAKpsB,EACL7gC,EAAK+zB,EAAMjvB,GAAGmsB,KACd4P,EAAK7gC,EAAGtB,IAAMwyB,EAAOlxB,EAAGuL,EAAIvL,EAAGtB,EAC3BT,EAAIgvD,EAAGhvD,GAAKA,EAAI4iC,EAAG5iC,GAAK64B,GAA4B5F,EAAM+7B,EAAIpsB,GAAM,GACtEmsB,EAAU/vD,MAAOqH,EAAKrG,GAAIqG,EAAK2oD,EAAGhvD,GAAIqG,EAAKu8B,EAAG5iC,OAI7C+uD,GAETH,EAAQlyD,EAAI,SAAS2B,GACnB,MAAOnB,WAAUC,QAAU66B,EAAK1oB,GAAW5S,EAAI2B,GAAIuwD,GAAWlyD,GAEhEkyD,EAAQlkD,EAAI,SAASrM,GACnB,MAAOnB,WAAUC,QAAU86B,EAAK3oB,GAAW5E,EAAIrM,GAAIuwD,GAAWlkD,GAEhEkkD,EAAQ//B,WAAa,SAASxwB,GAC5B,MAAKnB,WAAUC,QACf0xB,EAAkB,MAALxwB,EAAYywD,GAA4BzwD,EAC9CuwD,GAFuB//B,IAAeigC,GAA4B,KAAOjgC,GAIlF+/B,EAAQ1vD,KAAO,SAASb,GACtB,MAAKnB,WAAUC,OACRyxD,EAAQ//B,WAAWxwB,KAAS,EAAG,GAAKA,IADbwwB,IAAeigC,GAA4B,KAAOjgC,GAAcA,EAAW,IAGpG+/B,GAET,IAAIE,MAAgC,KAAM,OAAU,IAAK,KAIzDztD,IAAG4sD,KAAKgB,SAAW,SAASf,GAC1B,MAAO7sD,IAAG4sD,KAAKW,UAAUG,UAAUb,IAErC7sD,GAAG4sD,KAAKiB,SAAW,SAAS/sC,EAAQ4F,EAAIC,EAAIoF,EAAIC,GAY9C,QAAS6hC,GAAS7oD,GA4BhB,QAAS2uB,GAAO/0B,EAAG1C,EAAGb,EAAGgO,EAAGqd,EAAIC,EAAIoF,EAAIC,GACtC,IAAIzwB,MAAMF,KAAME,MAAM8N,GACtB,GAAIzK,EAAEg5B,KAAM,CACV,GAAIk2B,GAAKlvD,EAAEvD,EAAG0yD,EAAKnvD,EAAEyK,CACrB,IAAU,MAANykD,EACF,GAAIl8C,GAAIk8C,EAAKzyD,GAAKuW,GAAIm8C,EAAK1kD,GAAK,IAC9B2kD,EAAYpvD,EAAG1C,EAAGb,EAAGgO,EAAGqd,EAAIC,EAAIoF,EAAIC,OAC/B,CACL,GAAIiiC,GAASrvD,EAAE0J,KACf1J,GAAEvD,EAAIuD,EAAEyK,EAAIzK,EAAE0J,MAAQ,KACtB0lD,EAAYpvD,EAAGqvD,EAAQH,EAAIC,EAAIrnC,EAAIC,EAAIoF,EAAIC,GAC3CgiC,EAAYpvD,EAAG1C,EAAGb,EAAGgO,EAAGqd,EAAIC,EAAIoF,EAAIC,OAGtCptB,GAAEvD,EAAIA,EAAGuD,EAAEyK,EAAIA,EAAGzK,EAAE0J,MAAQpM,MAG9B8xD,GAAYpvD,EAAG1C,EAAGb,EAAGgO,EAAGqd,EAAIC,EAAIoF,EAAIC,GAGxC,QAASgiC,GAAYpvD,EAAG1C,EAAGb,EAAGgO,EAAGqd,EAAIC,EAAIoF,EAAIC,GAC3C,GAAIwM,GAAiB,IAAX9R,EAAKqF,GAAU0M,EAAiB,IAAX9R,EAAKqF,GAAUhwB,EAAQX,GAAKm9B,EAAIE,EAAQrvB,GAAKovB,EAAI95B,EAAI+5B,GAAS,EAAI18B,CACjG4C,GAAEg5B,MAAO,EACTh5B,EAAIA,EAAEi5B,MAAMl5B,KAAOC,EAAEi5B,MAAMl5B,GAAKg5B,MAC5B37B,EAAO0qB,EAAK8R,EAASzM,EAAKyM,EAC1BE,EAAO/R,EAAK8R,EAASzM,EAAKyM,EAC9B9E,EAAO/0B,EAAG1C,EAAGb,EAAGgO,EAAGqd,EAAIC,EAAIoF,EAAIC,GArDjC,GAAI9vB,GAA2CgyD,EAAIC,EAAIxvD,EAAGC,EAAGwvD,EAAKC,EAAKC,EAAKC,EAArE53B,EAAK1oB,GAAW5S,GAAIu7B,EAAK3oB,GAAW5E,EAC3C,IAAU,MAANqd,EACF0nC,EAAM1nC,EAAI2nC,EAAM1nC,EAAI2nC,EAAMviC,EAAIwiC,EAAMviC,MAKpC,IAHAsiC,EAAMC,IAAQH,EAAMC,OACpBH,KAASC,KACTvvD,EAAIoG,EAAKlJ,OACL0yD,EAAQ,IAAK7vD,EAAI,EAAOC,EAAJD,IAASA,EAC/BzC,EAAI8I,EAAKrG,GACLzC,EAAEb,EAAI+yD,IAAKA,EAAMlyD,EAAEb,GACnBa,EAAEmN,EAAIglD,IAAKA,EAAMnyD,EAAEmN,GACnBnN,EAAEb,EAAIizD,IAAKA,EAAMpyD,EAAEb,GACnBa,EAAEmN,EAAIklD,IAAKA,EAAMryD,EAAEmN,GACvB6kD,EAAGvwD,KAAKzB,EAAEb,GACV8yD,EAAGxwD,KAAKzB,EAAEmN,OACL,KAAK1K,EAAI,EAAOC,EAAJD,IAASA,EAAG,CAC7B,GAAIkpB,IAAM8O,EAAGz6B,EAAI8I,EAAKrG,GAAIA,GAAImpB,GAAM8O,EAAG16B,EAAGyC,EACjCyvD,GAALvmC,IAAUumC,EAAMvmC,GACXwmC,EAALvmC,IAAUumC,EAAMvmC,GAChBD,EAAKymC,IAAKA,EAAMzmC,GAChBC,EAAKymC,IAAKA,EAAMzmC,GACpBomC,EAAGvwD,KAAKkqB,GACRsmC,EAAGxwD,KAAKmqB,GAGZ,GAAId,GAAKsnC,EAAMF,EAAKnnC,EAAKsnC,EAAMF,CAC3BrnC,GAAKC,EAAIsnC,EAAMF,EAAMrnC,EAASsnC,EAAMF,EAAMnnC,CA6B9C,IAAIkR,GAAOR,IAWX,IAVAQ,EAAK90B,IAAM,SAASnH,GAClBy3B,EAAOwE,EAAMj8B,GAAIy6B,EAAGz6B,IAAKyC,IAAKi4B,EAAG16B,EAAGyC,GAAIyvD,EAAKC,EAAKC,EAAKC,IAEzDp2B,EAAKs2B,MAAQ,SAAStlD,GACpB2uB,GAAsB3uB,EAAGgvB,EAAMi2B,EAAKC,EAAKC,EAAKC,IAEhDp2B,EAAKG,KAAO,SAAShwB,GACnB,MAAO4vB,IAAqBC,EAAM7vB,EAAM,GAAIA,EAAM,GAAI8lD,EAAKC,EAAKC,EAAKC,IAEvE5vD,EAAI,GACM,MAAN+nB,EAAY,CACd,OAAS/nB,EAAIC,GACX+0B,EAAOwE,EAAMnzB,EAAKrG,GAAIuvD,EAAGvvD,GAAIwvD,EAAGxvD,GAAIyvD,EAAKC,EAAKC,EAAKC,KAEnD5vD,MACGqG,GAAK0K,QAAQyoB,EAAK90B,IAEzB,OADA6qD,GAAKC,EAAKnpD,EAAO9I,EAAI,KACdi8B,EArFT,GAA4Cq2B,GAAxCnzD,EAAIo1B,GAAgBpnB,EAAIqnB,EAC5B,QAAI89B,EAAS3yD,UAAUC,SACrBT,EAAIo8B,GACJpuB,EAAIquB,GACW,IAAX82B,IACFxiC,EAAKrF,EACLoF,EAAKrF,EACLC,EAAKD,EAAK,GAELmnC,EAAS/sC,KA8ElB+sC,EAASxyD,EAAI,SAAS2B,GACpB,MAAOnB,WAAUC,QAAUT,EAAI2B,EAAG6wD,GAAYxyD,GAEhDwyD,EAASxkD,EAAI,SAASrM,GACpB,MAAOnB,WAAUC,QAAUuN,EAAIrM,EAAG6wD,GAAYxkD,GAEhDwkD,EAASl5B,OAAS,SAAS33B,GACzB,MAAKnB,WAAUC,QACN,MAALkB,EAAW0pB,EAAKC,EAAKoF,EAAKC,EAAK,MAAWtF,GAAM1pB,EAAE,GAAG,GAAI2pB,GAAM3pB,EAAE,GAAG,GAAI+uB,GAAM/uB,EAAE,GAAG,GACvFgvB,GAAMhvB,EAAE,GAAG,IACJ6wD,GAH6B,MAANnnC,EAAa,OAAWA,EAAIC,IAAQoF,EAAIC,KAKxE6hC,EAAShwD,KAAO,SAASb,GACvB,MAAKnB,WAAUC,QACN,MAALkB,EAAW0pB,EAAKC,EAAKoF,EAAKC,EAAK,MAAWtF,EAAKC,EAAK,EAAGoF,GAAM/uB,EAAE,GAAIgvB,GAAMhvB,EAAE,IACxE6wD,GAF6B,MAANnnC,EAAa,MAASqF,EAAKrF,EAAIsF,EAAKrF,IAI7DknC,IA8DT7tD,GAAG0uD,eAAiB/1B,GASpB34B,GAAG2uD,kBAAoBz1B,GAoBvBl5B,GAAG4uD,kBAAoBx1B,GAOvBp5B,GAAG6uD,kBAAoBx1B,EAiCvB,IAAIK,IAAyB,8CAA+CC,GAAyB,GAAIl3B,QAAOi3B,GAAuBv7B,OAAQ,IAC/I6B,IAAGogB,YAAc+Y,GAMjBn5B,GAAG65B,eAAkB,SAAS3+B,EAAGC,GAC/B,GAAI8V,SAAW9V,EACf,QAAc,WAAN8V,EAAiBpD,GAAam4B,IAAI7qC,IAAM,mBAAmBqI,KAAKrI,GAAKw9B,GAAoBU,GAAuBl+B,YAAa6P,IAAW2tB,GAAoBvkB,MAAMw8B,QAAQz1C,GAAK2+B,GAA4B,WAAN7oB,GAAkB1V,MAAMJ,GAAK+9B,GAAuBE,IAAsBl+B,EAAGC,KAE5R6E,GAAG8uD,iBAAmBh1B,EAWtB,IAAIi1B,IAAkB,WACpB,MAAO/wD,IAELgxD,GAAUhvD,GAAGgD,KACfghC,OAAQ+qB,GACRE,KAAMx0B,GACN+D,KAAM,WACJ,MAAOnE,KAET60B,MAAO,WACL,MAAO50B,KAETvvB,IAAK,WACH,MAAO2vB,KAET/vB,IAAK,WACH,MAAOgwB,KAET9I,OAAQ,WACN,MAAO+I,KAETu0B,QAASt0B,GACTu0B,KAAMt0B,GACNu0B,OAAQ,WACN,MAAOt0B,OAGPu0B,GAAetvD,GAAGgD,KACpBusD,KAAMvxD,EACNwxD,IAAKr1B,GACLs1B,SAAUr1B,GACVs1B,SAAU,SAASvmD,GACjB,MAAOixB,IAAgBD,GAAgBhxB,MAG3CnJ,IAAG2sC,KAAO,SAASnuC,GACjB,GAAIG,GAAIH,EAAKmB,QAAQ,KAAMsR,EAAItS,GAAK,EAAIH,EAAKlB,MAAM,EAAGqB,GAAKH,EAAMiH,EAAI9G,GAAK,EAAIH,EAAKlB,MAAMqB,EAAI,GAAK,IAGlG,OAFAsS,GAAI+9C,GAAQtvD,IAAIuR,IAAM89C,GACtBtpD,EAAI6pD,GAAa5vD,IAAI+F,IAAMzH,EACpBk8B,GAAcz0B,EAAEwL,EAAE5S,MAAM,KAAMmwC,GAAc7nC,KAAK9K,UAAW,OA4DrEmE,GAAG2vD,eAAiB30B,GAWpBh7B,GAAG4vD,eAAiBp0B,GAWpBx7B,GAAG6vD,eAAiBn0B,GASpB17B,GAAG8vD,iBAAmBh0B,GAOtB97B,GAAG08B,UAAY,SAASjnB,GACtB,GAAIvJ,GAAIgiC,GAAY1pC,gBAAgBxE,GAAGmC,GAAGmR,OAAOnL,IAAK,IACtD,QAAQnI,GAAG08B,UAAY,SAASjnB,GAC9B,GAAc,MAAVA,EAAgB,CAClBvJ,EAAEpK,aAAa,YAAa2T,EAC5B,IAAIxE,GAAI/E,EAAEwwB,UAAUqzB,QAAQC,cAE9B,MAAO,IAAIj0B,IAAa9qB,EAAIA,EAAEs/B,OAAS0f,MACtCx6C,IAeLsmB,GAAap/B,UAAU0Q,SAAW,WAChC,MAAO,aAAetQ,KAAK2wB,UAAY,WAAa3wB,KAAKykB,OAAS,UAAYzkB,KAAKy/B,KAAO,UAAYz/B,KAAK8U,MAAQ,IAkBrH,IAAIo+C,KACF/0D,EAAG,EACHC,EAAG,EACHgI,EAAG,EACHjH,EAAG,EACHkE,EAAG,EACH+I,EAAG,EAELnJ,IAAGkwD,qBAAuBzzB,GAiE1Bz8B,GAAGmwD,UACHnwD,GAAGmwD,OAAOC,OAAS,WACjB,MAAO,UAASpxB,GAEd,IADA,GAAIqxB,MAAY1xD,EAAI,GAAIC,EAAIogC,EAAMljC,SACzB6C,EAAIC,GAAGyxD,EAAM1yD,KAAK0/B,GAAqB2B,EAAMrgC,IACtD,OAAO0xD,KAoCXrwD,GAAGmwD,OAAOG,MAAQ,WAEhB,QAASC,KACP,GAAkFn0D,GAAGf,EAAG0jB,EAAIpgB,EAAG6G,EAA3F6sC,KAAgBme,KAAgBC,EAAazwD,GAAG+U,MAAMnW,GAAI8xD,IAI9D,KAHAC,KACA7vD,KACA1E,EAAI,EAAGuC,EAAI,KACFA,EAAIC,GAAG,CAEd,IADAvD,EAAI,EAAGmK,EAAI,KACFA,EAAI5G,GACXvD,GAAKk1C,EAAO5xC,GAAG6G,EAEjBgrD,GAAU7yD,KAAKtC,GACfq1D,EAAc/yD,KAAKqC,GAAG+U,MAAMnW,IAC5BxC,GAAKf,EAgBP,IAdIu1D,GACFH,EAAW9vC,KAAK,SAASzlB,EAAGC,GAC1B,MAAOy1D,GAAWJ,EAAUt1D,GAAIs1D,EAAUr1D,MAG1C01D,GACFH,EAAchhD,QAAQ,SAASxT,EAAGyC,GAChCzC,EAAEykB,KAAK,SAASzlB,EAAGC,GACjB,MAAO01D,GAActgB,EAAO5xC,GAAGzD,GAAIq1C,EAAO5xC,GAAGxD,QAInDiB,GAAKkoB,GAAIvb,EAAUnK,GAAKxC,EACxBf,EAAI,EAAGsD,EAAI,KACFA,EAAIC,GAAG,CAEd,IADAmgB,EAAK1jB,EAAGmK,EAAI,KACHA,EAAI5G,GAAG,CACd,GAAIkyD,GAAKL,EAAW9xD,GAAIoyD,EAAKL,EAAcI,GAAItrD,GAAI8F,EAAIilC,EAAOugB,GAAIC,GAAK5lC,EAAK9vB,EAAGosB,EAAKpsB,GAAKiQ,EAAIlP,CAC7Fi2C,GAAUye,EAAK,IAAMC,IACnBn3B,MAAOk3B,EACPE,SAAUD,EACV1pB,WAAYlc,EACZoc,SAAU9f,EACV7qB,MAAO0O,GAGXxK,EAAOgwD,IACLl3B,MAAOk3B,EACPzpB,WAAYtoB,EACZwoB,SAAUlsC,EACVuB,OAAQvB,EAAI0jB,GAAM3iB,GAEpBf,GAAK0N,EAGP,IADApK,EAAI,KACKA,EAAIC,GAEX,IADA4G,EAAI7G,EAAI,IACC6G,EAAI5G,GAAG,CACd,GAAIT,GAASk0C,EAAU1zC,EAAI,IAAM6G,GAAItH,EAASm0C,EAAU7sC,EAAI,IAAM7G,IAC9DR,EAAOvB,OAASsB,EAAOtB,QACzB+zD,EAAOhzD,KAAKQ,EAAOvB,MAAQsB,EAAOtB,OAChCuB,OAAQD,EACRA,OAAQC,IAERA,OAAQA,EACRD,OAAQA,IAKZ+yD,GAAYC,IAElB,QAASA,KACPP,EAAOhwC,KAAK,SAASzlB,EAAGC,GACtB,MAAO81D,IAAY/1D,EAAEiD,OAAOvB,MAAQ1B,EAAEgD,OAAOtB,OAAS,GAAIzB,EAAEgD,OAAOvB,MAAQzB,EAAE+C,OAAOtB,OAAS,KArEjG,GAAgB+zD,GAAQ7vD,EAAQyvC,EAAQ3xC,EAAgBgyD,EAAYC,EAAeI,EAA/EX,KAAuCvnD,EAAU,CA8GrD,OAtCAunD,GAAM/f,OAAS,SAASl1C,GACtB,MAAKQ,WAAUC,QACf8C,GAAK2xC,EAASl1C,IAAMk1C,EAAOz0C,OAC3B60D,EAAS7vD,EAAS,KACXwvD,GAHuB/f,GAKhC+f,EAAMvnD,QAAU,SAAS1N,GACvB,MAAKQ,WAAUC,QACfiN,EAAU1N,EACVs1D,EAAS7vD,EAAS,KACXwvD,GAHuBvnD,GAKhCunD,EAAMM,WAAa,SAASv1D,GAC1B,MAAKQ,WAAUC,QACf80D,EAAav1D,EACbs1D,EAAS7vD,EAAS,KACXwvD,GAHuBM,GAKhCN,EAAMO,cAAgB,SAASx1D,GAC7B,MAAKQ,WAAUC,QACf+0D,EAAgBx1D,EAChBs1D,EAAS,KACFL,GAHuBO,GAKhCP,EAAMW,WAAa,SAAS51D,GAC1B,MAAKQ,WAAUC,QACfm1D,EAAa51D,EACTs1D,GAAQO,IACLZ,GAHuBW,GAKhCX,EAAMK,OAAS,WAEb,MADKA,IAAQJ,IACNI,GAETL,EAAMxvD,OAAS,WAEb,MADKA,IAAQyvD,IACNzvD,GAEFwvD,GAETtwD,GAAGmwD,OAAOgB,MAAQ,WAEhB,QAASC,GAAQz2D,GACf,MAAO,UAAS6jC,EAAM9X,EAAI1pB,EAAG+uB,GAC3B,GAAIyS,EAAKl2B,QAAU3N,EAAM,CACvB,GAAIqsB,GAAKwX,EAAKjf,GAAK5kB,EAAKU,EAAG4rB,EAAKuX,EAAKhf,GAAK7kB,EAAK0O,EAAGgoD,EAAKtlC,EAAKrF,EAAI4qC,EAAKtqC,EAAKA,EAAKC,EAAKA,CACpF,IAAuBqqC,EAAnBD,EAAKA,EAAKE,EAAa,CACzB,GAASC,EAALF,EAAsB,CACxB,GAAIl1D,GAAIoiC,EAAKG,OAAS2yB,CACtB32D,GAAKyjC,IAAMpX,EAAK5qB,EAChBzB,EAAK0jC,IAAMpX,EAAK7qB,EAElB,OAAO,EAET,GAAIoiC,EAAKl2B,OAASgpD,GAAWE,EAALF,EAAsB,CAC5C,GAAIl1D,GAAIoiC,EAAKK,YAAcyyB,CAC3B32D,GAAKyjC,IAAMpX,EAAK5qB,EAChBzB,EAAK0jC,IAAMpX,EAAK7qB,GAGpB,OAAQoiC,EAAKG,QAuLjB,QAAS8yB,GAASv1D,GAChBA,EAAEkiC,GAAKp+B,GAAGb,MAAM9D,EAAGa,EAAEmiC,GAAKr+B,GAAGb,MAAMkK,EACnC8nD,EAAMO,SA5MR,GAA8E/c,GAAMlW,EAAkOkzB,EAAWC,EAAWlzB,EAAxUyyB,KAAYhyD,EAAQa,GAAGd,SAAS,QAAS,OAAQ,OAAQrB,GAAS,EAAG,GAAkBg0D,EAAW,GAAIC,EAAeC,GAA6BC,EAAeC,GAA6BtzB,EAAS,IAAK6yB,EAAkBU,GAAgCC,EAAU,GAAIZ,EAAS,IAAK15B,KAAYmH,IA8M1S,OAxLAmyB,GAAMpkB,KAAO,WACX,IAAKtO,GAAS,KAAO,KAKnB,MAJAt/B,GAAM61B,KACJp0B,KAAM,MACN69B,MAAOA,EAAQ,KAEV,CAET,IAAwCrY,GAAGznB,EAAGwI,EAAGhH,EAAG8Q,EAAG7R,EAAGhD,EAAGf,EAAGgO,EAA5DzK,EAAIi5B,EAAM/7B,OAAQ2J,EAAIu5B,EAAMljC,MAChC,KAAK6C,EAAI,EAAO8G,EAAJ9G,IAASA,EACnBwI,EAAI63B,EAAMrgC,GACVwB,EAAIgH,EAAEhJ,OACN8S,EAAI9J,EAAEjJ,OACN7C,EAAI4V,EAAE5V,EAAI8E,EAAE9E,EACZgO,EAAI4H,EAAE5H,EAAIlJ,EAAEkJ,GACRjK,EAAI/D,EAAIA,EAAIgO,EAAIA,KAClBjK,EAAIq/B,EAAQmzB,EAAUjzD,KAAOS,EAAIiL,KAAKyC,KAAK1N,IAAMuyD,EAAUhzD,IAAMS,EACjE/D,GAAK+D,EACLiK,GAAKjK,EACL6R,EAAE5V,GAAKA,GAAKe,EAAI+D,EAAEiyD,QAAUnhD,EAAEmhD,OAASjyD,EAAEiyD,SACzCnhD,EAAE5H,GAAKA,EAAIjN,EACX+D,EAAE9E,GAAKA,GAAKe,EAAI,EAAIA,GACpB+D,EAAEkJ,GAAKA,EAAIjN,EAGf,KAAIA,EAAIqiC,EAAQ0zB,KACd92D,EAAIwC,EAAK,GAAK,EACdwL,EAAIxL,EAAK,GAAK,EACdc,EAAI,GACAvC,GAAG,OAASuC,EAAIC,GAClBuI,EAAI0wB,EAAMl5B,GACVwI,EAAE9L,IAAMA,EAAI8L,EAAE9L,GAAKe,EACnB+K,EAAEkC,IAAMA,EAAIlC,EAAEkC,GAAKjN,CAGvB,IAAIuiC,EAGF,IAFAJ,GAA0BnY,EAAIpmB,GAAG4sD,KAAKiB,SAASh2B,GAAQ4G,EAAOC,GAC9D//B,EAAI,KACKA,EAAIC,IACLuI,EAAI0wB,EAAMl5B,IAAIs/B,OAClB7X,EAAEqoC,MAAM2C,EAAQjqD,GAKtB,KADAxI,EAAI,KACKA,EAAIC,GACXuI,EAAI0wB,EAAMl5B,GACNwI,EAAE82B,OACJ92B,EAAE9L,EAAI8L,EAAEi3B,GACRj3B,EAAEkC,EAAIlC,EAAEk3B,KAERl3B,EAAE9L,IAAM8L,EAAEi3B,IAAMj3B,EAAEi3B,GAAKj3B,EAAE9L,IAAMw2D,EAC/B1qD,EAAEkC,IAAMlC,EAAEk3B,IAAMl3B,EAAEk3B,GAAKl3B,EAAEkC,IAAMwoD,EAGnC1yD,GAAM4tC,MACJnsC,KAAM,OACN69B,MAAOA,KAGX0yB,EAAMt5B,MAAQ,SAASx8B,GACrB,MAAKQ,WAAUC,QACf+7B,EAAQx8B,EACD81D,GAFuBt5B,GAIhCs5B,EAAMnyB,MAAQ,SAAS3jC,GACrB,MAAKQ,WAAUC,QACfkjC,EAAQ3jC,EACD81D,GAFuBnyB,GAIhCmyB,EAAMtzD,KAAO,SAASxC,GACpB,MAAKQ,WAAUC,QACf+B,EAAOxC,EACA81D,GAFuBtzD,GAIhCszD,EAAMW,aAAe,SAASz2D,GAC5B,MAAKQ,WAAUC,QACfg2D,EAA4B,kBAANz2D,GAAmBA,GAAKA,EACvC81D,GAFuBW,GAIhCX,EAAM7hC,SAAW6hC,EAAMW,aACvBX,EAAMa,aAAe,SAAS32D,GAC5B,MAAKQ,WAAUC,QACfk2D,EAA4B,kBAAN32D,GAAmBA,GAAKA,EACvC81D,GAFuBa,GAIhCb,EAAMU,SAAW,SAASx2D,GACxB,MAAKQ,WAAUC,QACf+1D,GAAYx2D,EACL81D,GAFuBU,GAIhCV,EAAMxyB,OAAS,SAAStjC,GACtB,MAAKQ,WAAUC,QACf6iC,EAAsB,kBAANtjC,GAAmBA,GAAKA,EACjC81D,GAFuBxyB,GAIhCwyB,EAAMkB,eAAiB,SAASh3D,GAC9B,MAAKQ,WAAUC,QACf01D,EAAkBn2D,EAAIA,EACf81D,GAFuB9mD,KAAKyC,KAAK0kD,IAI1CL,EAAMgB,QAAU,SAAS92D,GACvB,MAAKQ,WAAUC,QACfq2D,GAAW92D,EACJ81D,GAFuBgB,GAIhChB,EAAMmB,MAAQ,SAASj3D,GACrB,MAAKQ,WAAUC,QACfy1D,EAASl2D,EAAIA,EACN81D,GAFuB9mD,KAAKyC,KAAKykD,IAI1CJ,EAAM1yB,MAAQ,SAASpjC,GACrB,MAAKQ,WAAUC,QACfT,GAAKA,EACDojC,EACSA,EAAPpjC,EAAI,EAAWA,EAAgB,EAC1BA,EAAI,IACb8D,EAAM4hB,OACJngB,KAAM,QACN69B,MAAOA,EAAQpjC,IAEjB2E,GAAG4sC,MAAMukB,EAAMpkB,OAEVokB,GAXuB1yB,GAahC0yB,EAAMpwC,MAAQ,WA0BZ,QAASnY,GAAS2pD,EAAW10D,GAC3B,IAAK20D,EAAW,CAEd,IADAA,EAAY,GAAIp+C,OAAMxV,GACjB4G,EAAI,EAAO5G,EAAJ4G,IAASA,EACnBgtD,EAAUhtD,KAEZ,KAAKA,EAAI,EAAOC,EAAJD,IAASA,EAAG,CACtB,GAAI2B,GAAI63B,EAAMx5B,EACdgtD,GAAUrrD,EAAEhJ,OAAOy7B,OAAOj8B,KAAKwJ,EAAEjJ,QACjCs0D,EAAUrrD,EAAEjJ,OAAO07B,OAAOj8B,KAAKwJ,EAAEhJ,SAIrC,IADA,GAA8D9C,GAA1Do3D,EAAaD,EAAU7zD,GAAI6G,EAAI,GAAIpG,EAAIqzD,EAAW32D,SAC7C0J,EAAIpG,GAAG,IAAK7D,MAAMF,EAAIo3D,EAAWjtD,GAAG+sD,IAAa,MAAOl3D,EACjE,OAAOgP,MAAKu0B,SAAW/gC,EAvCzB,GAAIc,GAAiE6zD,EAAWrrD,EAAzEvI,EAAIi5B,EAAM/7B,OAAQ2J,EAAIu5B,EAAMljC,OAAQ4L,EAAI7J,EAAK,GAAIqN,EAAIrN,EAAK,EACjE,KAAKc,EAAI,EAAOC,EAAJD,IAASA,GAClBwI,EAAI0wB,EAAMl5B,IAAIi7B,MAAQj7B,EACvBwI,EAAEirD,OAAS,CAEb,KAAKzzD,EAAI,EAAO8G,EAAJ9G,IAASA,EACnBwI,EAAI63B,EAAMrgC,GACa,gBAAZwI,GAAEhJ,SAAoBgJ,EAAEhJ,OAAS05B,EAAM1wB,EAAEhJ,SAC7B,gBAAZgJ,GAAEjJ,SAAoBiJ,EAAEjJ,OAAS25B,EAAM1wB,EAAEjJ,WAClDiJ,EAAEhJ,OAAOi0D,SACTjrD,EAAEjJ,OAAOk0D,MAEb,KAAKzzD,EAAI,EAAOC,EAAJD,IAASA,EACnBwI,EAAI0wB,EAAMl5B,GACNpD,MAAM4L,EAAE9L,KAAI8L,EAAE9L,EAAIuN,EAAS,IAAKlB,IAChCnM,MAAM4L,EAAEkC,KAAIlC,EAAEkC,EAAIT,EAAS,IAAKsC,IAChC3P,MAAM4L,EAAEi3B,MAAKj3B,EAAEi3B,GAAKj3B,EAAE9L,GACtBE,MAAM4L,EAAEk3B,MAAKl3B,EAAEk3B,GAAKl3B,EAAEkC,EAG5B,IADAsoD,KAC4B,kBAAjBG,GAA6B,IAAKnzD,EAAI,EAAO8G,EAAJ9G,IAASA,EAAGgzD,EAAUhzD,IAAMmzD,EAAanrD,KAAK5J,KAAMiiC,EAAMrgC,GAAIA,OAAS,KAAKA,EAAI,EAAO8G,EAAJ9G,IAASA,EAAGgzD,EAAUhzD,GAAKmzD,CAElK,IADAF,KAC4B,kBAAjBI,GAA6B,IAAKrzD,EAAI,EAAO8G,EAAJ9G,IAASA,EAAGizD,EAAUjzD,IAAMqzD,EAAarrD,KAAK5J,KAAMiiC,EAAMrgC,GAAIA,OAAS,KAAKA,EAAI,EAAO8G,EAAJ9G,IAASA,EAAGizD,EAAUjzD,GAAKqzD,CAElK,IADAtzB,KACsB,kBAAXC,GAAuB,IAAKhgC,EAAI,EAAOC,EAAJD,IAASA,EAAG+/B,EAAQ//B,IAAMggC,EAAOh4B,KAAK5J,KAAM86B,EAAMl5B,GAAIA,OAAS,KAAKA,EAAI,EAAOC,EAAJD,IAASA,EAAG+/B,EAAQ//B,GAAKggC,CAiBlJ,OAAOwyB,GAAMO,UAEfP,EAAMO,OAAS,WACb,MAAOP,GAAM1yB,MAAM,KAErB0yB,EAAMluB,KAAO,WACX,MAAOkuB,GAAM1yB,MAAM,IAErB0yB,EAAMxc,KAAO,WAEX,MADKA,KAAMA,EAAO30C,GAAGyxC,SAASkD,OAAOgB,OAAO33C,GAAauB,GAAG,kBAAmBy+B,IAA0Bz+B,GAAG,aAAckyD,GAAUlyD,GAAG,gBAAiB2+B,KACnJriC,UAAUC,WACfiB,MAAKwC,GAAG,kBAAmB4+B,IAA0B5+B,GAAG,iBAAkB++B,IAAyB33B,KAAKguC,GAD1EA,GAOzB30C,GAAGiQ,OAAOkhD,EAAOhyD,EAAO,MA0CjC,IAAI4yD,IAA8B,GAAIE,GAA8B,EAAGC,MACvElyD,IAAGmwD,OAAOpxB,UAAY,WAEpB,QAASA,GAAU5G,GACjB,GAAkCx9B,GAA9B+3D,GAAUv6B,GAAQN,IAEtB,KADAM,EAAKzM,MAAQ,EACkB,OAAvB/wB,EAAO+3D,EAAMvwC,QAEnB,GADA0V,EAAMl6B,KAAKhD,IACNg4D,EAAS16B,EAAStxB,KAAKo4B,EAAWpkC,EAAMA,EAAK+wB,UAAY9sB,EAAI+zD,EAAO72D,QAAS,CAEhF,IADA,GAAI8C,GAAG+zD,EAAQnzB,IACN5gC,GAAK,GACZ8zD,EAAM/0D,KAAK6hC,EAAQmzB,EAAO/zD,IAC1B4gC,EAAM56B,OAASjK,EACf6kC,EAAM9T,MAAQ/wB,EAAK+wB,MAAQ,CAEzB9uB,KAAOjC,EAAKiC,MAAQ,GACxBjC,EAAKs9B,SAAW06B,MAEZ/1D,KAAOjC,EAAKiC,OAASA,EAAM+J,KAAKo4B,EAAWpkC,EAAMA,EAAK+wB,QAAU,SAC7D/wB,GAAKs9B,QAQhB,OALAkH,IAA8BhH,EAAM,SAASx9B,GAC3C,GAAIg4D,GAAQ/tD,CACR+b,KAASgyC,EAASh4D,EAAKs9B,WAAW06B,EAAOhyC,KAAKA,GAC9C/jB,IAAUgI,EAASjK,EAAKiK,UAASA,EAAOhI,OAASjC,EAAKiC,SAErDi7B,EAzBT,GAAIlX,GAAO4e,GAAyBtH,EAAWoH,GAA6BziC,EAAQ0iC,EAuDpF,OA5BAP,GAAUpe,KAAO,SAAStlB,GACxB,MAAKQ,WAAUC,QACf6kB,EAAOtlB,EACA0jC,GAFuBpe,GAIhCoe,EAAU9G,SAAW,SAAS58B,GAC5B,MAAKQ,WAAUC,QACfm8B,EAAW58B,EACJ0jC,GAFuB9G,GAIhC8G,EAAUniC,MAAQ,SAASvB,GACzB,MAAKQ,WAAUC,QACfc,EAAQvB,EACD0jC,GAFuBniC,GAIhCmiC,EAAU6zB,QAAU,SAASz6B,GAW3B,MAVIv7B,KACFsiC,GAA+B/G,EAAM,SAASx9B,GACxCA,EAAKs9B,WAAUt9B,EAAKiC,MAAQ,KAElCuiC,GAA8BhH,EAAM,SAASx9B,GAC3C,GAAIiK,EACCjK,GAAKs9B,WAAUt9B,EAAKiC,OAASA,EAAM+J,KAAKo4B,EAAWpkC,EAAMA,EAAK+wB,QAAU,IACzE9mB,EAASjK,EAAKiK,UAAQA,EAAOhI,OAASjC,EAAKiC,UAG5Cu7B,GAEF4G,GAkDT/+B,GAAGmwD,OAAO0C,UAAY,WAEpB,QAASjqD,GAASjO,EAAMU,EAAG2rB,EAAIC,GAC7B,GAAIgR,GAAWt9B,EAAKs9B,QAKpB,IAJAt9B,EAAKU,EAAIA,EACTV,EAAK0O,EAAI1O,EAAK+wB,MAAQzE,EACtBtsB,EAAKqsB,GAAKA,EACVrsB,EAAKssB,GAAKA,EACNgR,IAAar5B,EAAIq5B,EAASn8B,QAAS,CACrC,GAAY8C,GAAGuE,EAAGjH,EAAdyC,EAAI,EAER,KADAqoB,EAAKrsB,EAAKiC,MAAQoqB,EAAKrsB,EAAKiC,MAAQ,IAC3B+B,EAAIC,GACXgK,EAASzF,EAAI80B,EAASt5B,GAAItD,EAAGa,EAAIiH,EAAEvG,MAAQoqB,EAAIC,GAC/C5rB,GAAKa,GAIX,QAASwvB,GAAM/wB,GACb,GAAIs9B,GAAWt9B,EAAKs9B,SAAU/7B,EAAI,CAClC,IAAI+7B,IAAar5B,EAAIq5B,EAASn8B,QAE5B,IADA,GAAY8C,GAARD,EAAI,KACCA,EAAIC,GAAG1C,EAAImO,KAAK+C,IAAIlR,EAAGwvB,EAAMuM,EAASt5B,IAEjD,OAAO,GAAIzC,EAEb,QAAS22D,GAAU32D,EAAGyC,GACpB,GAAIk5B,GAAQkH,EAAUp4B,KAAK5J,KAAMb,EAAGyC,EAEpC,OADAiK,GAASivB,EAAM,GAAI,EAAGh6B,EAAK,GAAIA,EAAK,GAAK6tB,EAAMmM,EAAM,KAC9CA,EA3BT,GAAIkH,GAAY/+B,GAAGmwD,OAAOpxB,YAAalhC,GAAS,EAAG,EAkCnD,OALAg1D,GAAUh1D,KAAO,SAASxC,GACxB,MAAKQ,WAAUC,QACf+B,EAAOxC,EACAw3D,GAFuBh1D,GAIzBihC,GAA0B+zB,EAAW9zB,IAE9C/+B,GAAGmwD,OAAO2C,IAAM,WAEd,QAASA,GAAI9tD,GACX,GAEsYsG,GAFlY1M,EAAIoG,EAAKlJ,OAAQqkC,EAASn7B,EAAKhC,IAAI,SAAS9G,EAAGyC,GACjD,OAAQ/B,EAAM+J,KAAKmsD,EAAK52D,EAAGyC,KACzBzD,IAA4B,kBAAfmsC,GAA4BA,EAAWhpC,MAAMtB,KAAMlB,WAAawrC,GAAazF,GAA0B,kBAAb2F,GAA0BA,EAASlpC,MAAMtB,KAAMlB,WAAa0rC,GAAYrsC,EAAGqW,EAAIlH,KAAKiD,IAAIjD,KAAKuH,IAAIgwB,GAAMhjC,IAAyB,kBAAb6oC,GAA0BA,EAASppC,MAAMtB,KAAMlB,WAAa4rC,IAAYjiB,EAAKjU,GAAU,EAALqwB,EAAS,GAAK,GAAIxlC,GAAKwlC,EAAKhjC,EAAI4mB,GAAMxlB,GAAGqvC,IAAIlP,GAASvG,EAAQ55B,GAAG+U,MAAMnW,GAAIm0D,IAe3X,OAdY,OAARpyC,GAAciZ,EAAMjZ,KAAKA,IAASqyC,GAA2B,SAASr0D,EAAG6G,GAC3E,MAAO26B,GAAO36B,GAAK26B,EAAOxhC,IACxB,SAASA,EAAG6G,GACd,MAAOmb,GAAK3b,EAAKrG,GAAIqG,EAAKQ,MAE5Bo0B,EAAMlqB,QAAQ,SAAS/Q,GACrBo0D,EAAKp0D,IACHqG,KAAMA,EAAKrG,GACX/B,MAAO0O,EAAI60B,EAAOxhC,GAClB0oC,WAAYnsC,EACZqsC,SAAUrsC,GAAKoQ,EAAIlP,EAAIopB,EACvBiiB,SAAUl2B,KAGPwhD,EAnBT,GAAIn2D,GAAQsnC,OAAQvjB,EAAOqyC,GAA0B3rB,EAAa,EAAGE,EAAWjjB,GAAGmjB,EAAW,CA8C9F,OAzBAqrB,GAAIl2D,MAAQ,SAASI,GACnB,MAAKnB,WAAUC,QACfc,EAAQI,EACD81D,GAFuBl2D,GAIhCk2D,EAAInyC,KAAO,SAAS3jB,GAClB,MAAKnB,WAAUC,QACf6kB,EAAO3jB,EACA81D,GAFuBnyC,GAIhCmyC,EAAIzrB,WAAa,SAASrqC,GACxB,MAAKnB,WAAUC,QACfurC,EAAarqC,EACN81D,GAFuBzrB,GAIhCyrB,EAAIvrB,SAAW,SAASvqC,GACtB,MAAKnB,WAAUC,QACfyrC,EAAWvqC,EACJ81D,GAFuBvrB,GAIhCurB,EAAIrrB,SAAW,SAASzqC,GACtB,MAAKnB,WAAUC,QACf2rC,EAAWzqC,EACJ81D,GAFuBrrB,GAIzBqrB,EAET,IAAIE,MACJhzD,IAAGmwD,OAAOuC,MAAQ,WAEhB,QAASA,GAAM1tD,EAAM40B,GACnB,KAAMh7B,EAAIoG,EAAKlJ,QAAS,MAAOkJ,EAC/B,IAAIiuD,GAASjuD,EAAKhC,IAAI,SAAS9G,EAAGyC,GAChC,MAAOwhC,GAAOx5B,KAAK+rD,EAAOx2D,EAAGyC,KAE3BmiB,EAASmyC,EAAOjwD,IAAI,SAAS9G,GAC/B,MAAOA,GAAE8G,IAAI,SAASsI,EAAG3M,GACvB,OAAStD,EAAEsL,KAAK+rD,EAAOpnD,EAAG3M,GAAI0K,EAAE1C,KAAK+rD,EAAOpnD,EAAG3M,QAG/Cu0D,EAAS1hB,EAAM7qC,KAAK+rD,EAAO5xC,EAAQ8Y,EACvCq5B,GAASjzD,GAAGgwC,QAAQijB,EAAQC,GAC5BpyC,EAAS9gB,GAAGgwC,QAAQlvB,EAAQoyC,EAC5B,IAC0Bt0D,GAAGD,EAAG6G,EAAG2B,EAD/BgsD,EAAUt+C,EAAOlO,KAAK+rD,EAAO5xC,EAAQ8Y,GACrCn0B,EAAIwtD,EAAO,GAAGn3D,MAClB,KAAK0J,EAAI,EAAOC,EAAJD,IAASA,EAEnB,IADAgqD,EAAI7oD,KAAK+rD,EAAOO,EAAO,GAAGztD,GAAI2B,EAAIgsD,EAAQ3tD,GAAIsb,EAAO,GAAGtb,GAAG,IACtD7G,EAAI,EAAOC,EAAJD,IAASA,EACnB6wD,EAAI7oD,KAAK+rD,EAAOO,EAAOt0D,GAAG6G,GAAI2B,GAAK2Z,EAAOniB,EAAI,GAAG6G,GAAG,GAAIsb,EAAOniB,GAAG6G,GAAG,GAGzE,OAAOR,GAtBT,GAAIm7B,GAASniC,EAAawzC,EAAQ5R,GAA6B/qB,EAASgrB,GAA2B2vB,EAAM7vB,GAAoBtkC,EAAIokC,GAAkBp2B,EAAIq2B,EAsDvJ,OA9BAgzB,GAAMvyB,OAAS,SAAS9kC,GACtB,MAAKQ,WAAUC,QACfqkC,EAAS9kC,EACFq3D,GAFuBvyB,GAIhCuyB,EAAMlhB,MAAQ,SAASn2C,GACrB,MAAKQ,WAAUC,QACf01C,EAAqB,kBAANn2C,GAAmBA,EAAI+3D,GAAsB1zD,IAAIrE,IAAMukC,GAC/D8yB,GAFuBlhB,GAIhCkhB,EAAM79C,OAAS,SAASxZ,GACtB,MAAKQ,WAAUC,QACf+Y,EAAsB,kBAANxZ,GAAmBA,EAAIg4D,GAAuB3zD,IAAIrE,IAAMwkC,GACjE6yB,GAFuB79C,GAIhC69C,EAAMr3D,EAAI,SAASgE,GACjB,MAAKxD,WAAUC,QACfT,EAAIgE,EACGqzD,GAFuBr3D,GAIhCq3D,EAAMrpD,EAAI,SAAShK,GACjB,MAAKxD,WAAUC,QACfuN,EAAIhK,EACGqzD,GAFuBrpD,GAIhCqpD,EAAMlD,IAAM,SAASnwD,GACnB,MAAKxD,WAAUC,QACf0zD,EAAMnwD,EACCqzD,GAFuBlD,GAIzBkD,EAYT,IAAIU,IAAwBpzD,GAAGgD,KAC7BswD,aAAc,SAAStuD,GACrB,GAAqBrG,GAAG6G,EAApB5G,EAAIoG,EAAKlJ,OAAcsR,EAAMpI,EAAKhC,IAAI88B,IAA0ByzB,EAAOvuD,EAAKhC,IAAI+8B,IAA2BnG,EAAQ55B,GAAG+U,MAAMnW,GAAG+hB,KAAK,SAASzlB,EAAGC,GAClJ,MAAOiS,GAAIlS,GAAKkS,EAAIjS,KAClB0N,EAAM,EAAG2qD,EAAS,EAAGC,KAAWC,IACpC,KAAK/0D,EAAI,EAAOC,EAAJD,IAASA,EACnB6G,EAAIo0B,EAAMj7B,GACA60D,EAAN3qD,GACFA,GAAO0qD,EAAK/tD,GACZiuD,EAAK91D,KAAK6H,KAEVguD,GAAUD,EAAK/tD,GACfkuD,EAAQ/1D,KAAK6H,GAGjB,OAAOkuD,GAAQ9gD,UAAUhT,OAAO6zD,IAElC7gD,QAAS,SAAS5N,GAChB,MAAOhF,IAAG+U,MAAM/P,EAAKlJ,QAAQ8W,WAE/B+gD,UAAW/zB,KAETyzB,GAAyBrzD,GAAGgD,KAC9B4wD,WAAY,SAAS5uD,GACnB,GAA6DrG,GAAG6G,EAAG2B,EAA/DvI,EAAIoG,EAAKlJ,OAAQ2J,EAAIT,EAAK,GAAGlJ,OAAQy3D,KAAWnmD,EAAM,EAAYyR,IACtE,KAAKrZ,EAAI,EAAOC,EAAJD,IAASA,EAAG,CACtB,IAAK7G,EAAI,EAAGwI,EAAI,EAAOvI,EAAJD,EAAOA,IAAKwI,GAAKnC,EAAKrG,GAAG6G,GAAG,EAC3C2B,GAAIiG,IAAKA,EAAMjG,GACnBosD,EAAK51D,KAAKwJ,GAEZ,IAAK3B,EAAI,EAAOC,EAAJD,IAASA,EACnBqZ,EAAGrZ,IAAM4H,EAAMmmD,EAAK/tD,IAAM,CAE5B,OAAOqZ,IAETg1C,OAAQ,SAAS7uD,GACf,GAAgDrG,GAAG6G,EAAGpJ,EAAGmlC,EAAIC,EAAIsyB,EAAI9sC,EAAI7f,EAAG4sD,EAAxEn1D,EAAIoG,EAAKlJ,OAAQT,EAAI2J,EAAK,GAAIS,EAAIpK,EAAES,OAAwC+iB,IAEhF,KADAA,EAAG,GAAK1X,EAAI4sD,EAAK,EACZvuD,EAAI,EAAOC,EAAJD,IAASA,EAAG,CACtB,IAAK7G,EAAI,EAAG4iC,EAAK,EAAO3iC,EAAJD,IAASA,EAAG4iC,GAAMv8B,EAAKrG,GAAG6G,GAAG,EACjD,KAAK7G,EAAI,EAAG6iC,EAAK,EAAGxa,EAAK3rB,EAAEmK,GAAG,GAAKnK,EAAEmK,EAAI,GAAG,GAAQ5G,EAAJD,IAASA,EAAG,CAC1D,IAAKvC,EAAI,EAAG03D,GAAM9uD,EAAKrG,GAAG6G,GAAG,GAAKR,EAAKrG,GAAG6G,EAAI,GAAG,KAAO,EAAIwhB,GAASroB,EAAJvC,IAASA,EACxE03D,IAAO9uD,EAAK5I,GAAGoJ,GAAG,GAAKR,EAAK5I,GAAGoJ,EAAI,GAAG,IAAMwhB,CAE9Cwa,IAAMsyB,EAAK9uD,EAAKrG,GAAG6G,GAAG,GAExBqZ,EAAGrZ,GAAK2B,GAAKo6B,EAAKC,EAAKD,EAAKva,EAAK,EACzB+sC,EAAJ5sD,IAAQ4sD,EAAK5sD,GAEnB,IAAK3B,EAAI,EAAOC,EAAJD,IAASA,EAAGqZ,EAAGrZ,IAAMuuD,CACjC,OAAOl1C,IAETm1C,OAAQ,SAAShvD,GACf,GAAoDrG,GAAG6G,EAAG2B,EAAtDvI,EAAIoG,EAAKlJ,OAAQ2J,EAAIT,EAAK,GAAGlJ,OAAQM,EAAI,EAAIwC,EAAYigB,IAC7D,KAAKrZ,EAAI,EAAOC,EAAJD,IAASA,EAAG,CACtB,IAAK7G,EAAI,EAAGwI,EAAI,EAAOvI,EAAJD,EAAOA,IAAKwI,GAAKnC,EAAKrG,GAAG6G,GAAG,EAC/C,IAAI2B,EAAG,IAAKxI,EAAI,EAAOC,EAAJD,EAAOA,IAAKqG,EAAKrG,GAAG6G,GAAG,IAAM2B,MAAQ,KAAKxI,EAAI,EAAOC,EAAJD,EAAOA,IAAKqG,EAAKrG,GAAG6G,GAAG,GAAKpJ,EAElG,IAAKoJ,EAAI,EAAOC,EAAJD,IAASA,EAAGqZ,EAAGrZ,GAAK,CAChC,OAAOqZ,IAETo1C,KAAMp0B,IA0BR7/B,IAAGmwD,OAAO+D,UAAY,WAEpB,QAASA,GAAUlvD,EAAMrG,GAEvB,IADA,GAAwIw1D,GAAsF94D,EAA1N+4D,KAAWj0B,EAASn7B,EAAKhC,IAAIqxD,EAAQt3D,MAAOgY,EAAQ6wB,EAAOj/B,KAAK5J,KAAMojC,EAAQxhC,GAAI4nC,EAAa+tB,EAAO3tD,KAAK5J,KAAMgY,EAAOorB,EAAQxhC,GAASA,EAAI,GAAIC,EAAIuhC,EAAOrkC,OAAQ2J,EAAI8gC,EAAWzqC,OAAS,EAAGM,EAAIm4D,EAAY,EAAI,EAAI31D,IAClND,EAAI8G,GACX0uD,EAAMC,EAAKz1D,MACXw1D,EAAIntC,GAAKuf,EAAW5nC,EAAI,IAAMw1D,EAAI94D,EAAIkrC,EAAW5nC,IACjDw1D,EAAI9qD,EAAI,CAEV,IAAI5D,EAAI,EAEN,IADA9G,EAAI,KACKA,EAAIC,GACXvD,EAAI8kC,EAAOxhC,GACPtD,GAAK0Z,EAAM,IAAM1Z,GAAK0Z,EAAM,KAC9Bo/C,EAAMC,EAAKp0D,GAAG4jC,OAAO2C,EAAYlrC,EAAG,EAAGoK,GAAK,GAC5C0uD,EAAI9qD,GAAKjN,EACT+3D,EAAIx2D,KAAKqH,EAAKrG,IAIpB,OAAOy1D,GAnBT,GAAIG,IAAY,EAAMF,EAASnwB,OAAQ0B,EAAStF,GAA0Bg0B,EAASp0B,EA2CnF,OAtBAg0B,GAAUt3D,MAAQ,SAASvB,GACzB,MAAKQ,WAAUC,QACfu4D,EAASh5D,EACF64D,GAFuBG,GAIhCH,EAAUn/C,MAAQ,SAAS1Z,GACzB,MAAKQ,WAAUC,QACf8pC,EAAS33B,GAAW5S,GACb64D,GAFuBtuB,GAIhCsuB,EAAUE,KAAO,SAAS/4D,GACxB,MAAKQ,WAAUC,QACfw4D,EAAsB,gBAANj5D,GAAiB,SAAS0Z,GACxC,MAAOqrB,IAA4BrrB,EAAO1Z,IACxC4S,GAAW5S,GACR64D,GAJuBI,GAMhCJ,EAAUK,UAAY,SAASl5D,GAC7B,MAAKQ,WAAUC,QACfy4D,IAAcl5D,EACP64D,GAFuBK,GAIzBL,GAaTl0D,GAAGmwD,OAAOqE,KAAO,WAEf,QAASA,GAAKt4D,EAAGyC,GACf,GAAIk5B,GAAQkH,EAAUp4B,KAAK5J,KAAMb,EAAGyC,GAAIw5B,EAAON,EAAM,GAAInwB,EAAI7J,EAAK,GAAIqN,EAAIrN,EAAK,GAAIoO,EAAc,MAAV0Y,EAAiBta,KAAKyC,KAAyB,kBAAX6X,GAAwBA,EAAS,WAC1J,MAAOA,GAOT,IALAwT,EAAK98B,EAAI88B,EAAK9uB,EAAI,EAClB81B,GAA8BhH,EAAM,SAASj8B,GAC3CA,EAAE+P,GAAKA,EAAE/P,EAAEU,SAEbuiC,GAA8BhH,EAAM2I,IAChC/3B,EAAS,CACX,GAAI83B,GAAK93B,GAAW4b,EAAS,EAAIta,KAAK+C,IAAI,EAAI+qB,EAAKlsB,EAAIvE,EAAG,EAAIywB,EAAKlsB,EAAIf,IAAM,CAC7Ei0B,IAA8BhH,EAAM,SAASj8B,GAC3CA,EAAE+P,GAAK40B,IAET1B,GAA8BhH,EAAM2I,IACpC3B,GAA8BhH,EAAM,SAASj8B,GAC3CA,EAAE+P,GAAK40B,IAIX,MADAa,IAAwBvJ,EAAMzwB,EAAI,EAAGwD,EAAI,EAAGyZ,EAAS,EAAI,EAAIta,KAAK+C,IAAI,EAAI+qB,EAAKlsB,EAAIvE,EAAG,EAAIywB,EAAKlsB,EAAIf,IAC5F2sB,EArBT,GAA8FlT,GAA1Foa,EAAY/+B,GAAGmwD,OAAOpxB,YAAYpe,KAAK4f,IAAqBx3B,EAAU,EAAGlL,GAAS,EAAG,EAsCzF,OAfA22D,GAAK32D,KAAO,SAASb,GACnB,MAAKnB,WAAUC,QACf+B,EAAOb,EACAw3D,GAFuB32D,GAIhC22D,EAAK7vC,OAAS,SAAS3nB,GACrB,MAAKnB,WAAUC,QACf6oB,EAAc,MAAL3nB,GAA0B,kBAANA,GAAmBA,GAAKA,EAC9Cw3D,GAFuB7vC,GAIhC6vC,EAAKzrD,QAAU,SAAS/L,GACtB,MAAKnB,WAAUC,QACfiN,GAAW/L,EACJw3D,GAFuBzrD,GAIzB+1B,GAA0B01B,EAAMz1B,IAmHzC/+B,GAAGmwD,OAAOn5B,KAAO,WAEf,QAASA,GAAK96B,EAAGyC,GACf,GAAIk5B,GAAQkH,EAAUp4B,KAAK5J,KAAMb,EAAGyC,GAAI81D,EAAQ58B,EAAM,GAAI68B,EAAQC,EAASF,EAG3E,IAFAt1B,GAA8Bu1B,EAAOE,GAAYF,EAAM9vD,OAAOa,GAAKivD,EAAMr1D,EACzE6/B,GAA+Bw1B,EAAOG,GAClCC,EAAU51B,GAA+Bu1B,EAAOM,OAAgB,CAClE,GAAIr5D,GAAO+4D,EAAOz4D,EAAQy4D,EAAOjB,EAASiB,CAC1Cv1B,IAA+Bu1B,EAAO,SAAS95D,GACzCA,EAAKU,EAAIK,EAAKL,IAAGK,EAAOf,GACxBA,EAAKU,EAAIW,EAAMX,IAAGW,EAAQrB,GAC1BA,EAAK+wB,MAAQ8nC,EAAO9nC,QAAO8nC,EAAS74D,IAE1C,IAAIq6D,GAAKC,EAAWv5D,EAAMM,GAAS,EAAIN,EAAKL,EAAG6gC,EAAKr+B,EAAK,IAAM7B,EAAMX,EAAI45D,EAAWj5D,EAAON,GAAQ,EAAIs5D,GAAK14B,EAAKz+B,EAAK,IAAM21D,EAAO9nC,OAAS,EAC5IwT,IAA+Bu1B,EAAO,SAAS95D,GAC7CA,EAAKU,GAAKV,EAAKU,EAAI25D,GAAM94B,EACzBvhC,EAAK0O,EAAI1O,EAAK+wB,MAAQ4Q,IAG1B,MAAOzE,GAET,QAAS88B,GAASF,GAKhB,IAJA,GAGsBS,GAHlBR,GACF37C,EAAG,KACHkf,UAAYw8B,IACXU,GAAUT,GACmB,OAAxBQ,EAAQC,EAAMhzC,QACpB,IAAK,GAA+Bqd,GAA3BvH,EAAWi9B,EAAMj9B,SAAiBt5B,EAAI,EAAGC,EAAIq5B,EAASn8B,OAAY8C,EAAJD,IAASA,EAC9Ew2D,EAAMx3D,MAAMs6B,EAASt5B,GAAK6gC,GACxBxiC,EAAGi7B,EAASt5B,GACZiG,OAAQswD,EACRj9B,UAAWuH,EAAQvH,EAASt5B,GAAGs5B,WAAauH,EAAMliC,YAClDyb,EAAG,KACH7d,EAAG,KACHmE,EAAG,EACHoG,EAAG,EACHtC,EAAG,EACHhD,EAAG,EACH8Q,EAAG,KACHtS,EAAGA,IACFzD,EAAIskC,EAGX,OAAOk1B,GAAMz8B,SAAS,GAExB,QAAS28B,GAAUtpD,GACjB,GAAI2sB,GAAW3sB,EAAE2sB,SAAUm9B,EAAW9pD,EAAE1G,OAAOqzB,SAAUvwB,EAAI4D,EAAE3M,EAAIy2D,EAAS9pD,EAAE3M,EAAI,GAAK,IACvF,IAAIs5B,EAASn8B,OAAQ,CACnBumC,GAAoB/2B,EACpB,IAAI+pD,IAAYp9B,EAAS,GAAG54B,EAAI44B,EAASA,EAASn8B,OAAS,GAAGuD,GAAK,CAC/DqI,IACF4D,EAAEjM,EAAIqI,EAAErI,EAAI41D,EAAW3pD,EAAEtO,EAAG0K,EAAE1K,GAC9BsO,EAAE7F,EAAI6F,EAAEjM,EAAIg2D,GAEZ/pD,EAAEjM,EAAIg2D,MAEC3tD,KACT4D,EAAEjM,EAAIqI,EAAErI,EAAI41D,EAAW3pD,EAAEtO,EAAG0K,EAAE1K,GAEhCsO,GAAE1G,OAAOmU,EAAIu8C,EAAUhqD,EAAG5D,EAAG4D,EAAE1G,OAAOmU,GAAKq8C,EAAS,IAEtD,QAASP,GAAWvpD,GAClBA,EAAEtO,EAAE3B,EAAIiQ,EAAEjM,EAAIiM,EAAE1G,OAAOa,EACvB6F,EAAE7F,GAAK6F,EAAE1G,OAAOa,EAElB,QAAS6vD,GAAUhqD,EAAG5D,EAAG86B,GACvB,GAAI96B,EAAG,CAEL,IADA,GAAiH4a,GAA7GizC,EAAMjqD,EAAGkqD,EAAMlqD,EAAGi3B,EAAM76B,EAAG+tD,EAAMF,EAAI3wD,OAAOqzB,SAAS,GAAIy9B,EAAMH,EAAI9vD,EAAGkwD,EAAMH,EAAI/vD,EAAGmwD,EAAMrzB,EAAI98B,EAAGowD,EAAMJ,EAAIhwD,EACvG88B,EAAMP,GAAoBO,GAAMgzB,EAAMxzB,GAAmBwzB,GAAMhzB,GAAOgzB,GAC3EE,EAAM1zB,GAAmB0zB,GACzBD,EAAMxzB,GAAoBwzB,GAC1BA,EAAIt6D,EAAIoQ,EACRgX,EAAQigB,EAAIljC,EAAIu2D,EAAML,EAAIl2D,EAAIq2D,EAAMT,EAAW1yB,EAAIvlC,EAAGu4D,EAAIv4D,GACtDslB,EAAQ,IACV2f,GAAmBK,GAAuBC,EAAKj3B,EAAGk3B,GAAWl3B,EAAGgX,GAChEozC,GAAOpzC,EACPqzC,GAAOrzC,GAETszC,GAAOrzB,EAAI98B,EACXiwD,GAAOH,EAAI9vD,EACXowD,GAAOJ,EAAIhwD,EACXkwD,GAAOH,EAAI/vD,CAET88B,KAAQP,GAAoBwzB,KAC9BA,EAAIvkD,EAAIsxB,EACRizB,EAAI/vD,GAAKmwD,EAAMD,GAEbJ,IAAQxzB,GAAmB0zB,KAC7BA,EAAIxkD,EAAIskD,EACRE,EAAIhwD,GAAKiwD,EAAMG,EACfrzB,EAAWl3B,GAGf,MAAOk3B,GAET,QAASuyB,GAASp6D,GAChBA,EAAKU,GAAKwC,EAAK,GACflD,EAAK0O,EAAI1O,EAAK+wB,MAAQ7tB,EAAK,GAhG7B,GAAIkhC,GAAY/+B,GAAGmwD,OAAOpxB,YAAYpe,KAAK,MAAM/jB,MAAM,MAAOq4D,EAAanzB,GAA0BjkC,GAAS,EAAG,GAAKi3D,EAAW,IAiHjI,OAfA99B,GAAKi+B,WAAa,SAAS55D,GACzB,MAAKQ,WAAUC,QACfm5D,EAAa55D,EACN27B,GAFuBi+B,GAIhCj+B,EAAKn5B,KAAO,SAASxC,GACnB,MAAKQ,WAAUC,QACfg5D,EAAyB,OAAbj3D,EAAOxC,GAAa05D,EAAW,KACpC/9B,GAFuB89B,EAAW,KAAOj3D,GAIlDm5B,EAAK89B,SAAW,SAASz5D,GACvB,MAAKQ,WAAUC,QACfg5D,EAAyB,OAAbj3D,EAAOxC,GAAa,KAAO05D,EAChC/9B,GAFuB89B,EAAWj3D,EAAO,MAI3CihC,GAA0B9H,EAAM+H,IAiCzC/+B,GAAGmwD,OAAO2F,QAAU,WAElB,QAASA,GAAQ55D,EAAGyC,GAClB,GAAyDo3D,GAArDl+B,EAAQkH,EAAUp4B,KAAK5J,KAAMb,EAAGyC,GAAIw5B,EAAON,EAAM,GAAkBx8B,EAAI,CAC3E8jC,IAA8BhH,EAAM,SAASx9B,GAC3C,GAAIs9B,GAAWt9B,EAAKs9B,QAChBA,IAAYA,EAASn8B,QACvBnB,EAAKU,EAAIqnC,GAAmBzK,GAC5Bt9B,EAAK0O,EAAIo5B,GAAmBxK,KAE5Bt9B,EAAKU,EAAI06D,EAAe16D,GAAK45D,EAAWt6D,EAAMo7D,GAAgB,EAC9Dp7D,EAAK0O,EAAI,EACT0sD,EAAep7D,IAGnB,IAAIe,GAAOinC,GAAsBxK,GAAOn8B,EAAQ4mC,GAAuBzK,GAAOpZ,EAAKrjB,EAAKL,EAAI45D,EAAWv5D,EAAMM,GAAS,EAAG0qB,EAAK1qB,EAAMX,EAAI45D,EAAWj5D,EAAON,GAAQ,CAQlK,OAPAyjC,IAA8BhH,EAAM28B,EAAW,SAASn6D,GACtDA,EAAKU,GAAKV,EAAKU,EAAI88B,EAAK98B,GAAKwC,EAAK,GAClClD,EAAK0O,GAAK8uB,EAAK9uB,EAAI1O,EAAK0O,GAAKxL,EAAK,IAChC,SAASlD,GACXA,EAAKU,GAAKV,EAAKU,EAAI0jB,IAAO2H,EAAK3H,GAAMlhB,EAAK,GAC1ClD,EAAK0O,GAAK,GAAK8uB,EAAK9uB,EAAI1O,EAAK0O,EAAI8uB,EAAK9uB,EAAI,IAAMxL,EAAK,KAEhDg6B,EAtBT,GAAIkH,GAAY/+B,GAAGmwD,OAAOpxB,YAAYpe,KAAK,MAAM/jB,MAAM,MAAOq4D,EAAanzB,GAA0BjkC,GAAS,EAAG,GAAKi3D,GAAW,CAuCjI,OAfAgB,GAAQb,WAAa,SAAS55D,GAC5B,MAAKQ,WAAUC,QACfm5D,EAAa55D,EACNy6D,GAFuBb,GAIhCa,EAAQj4D,KAAO,SAASxC,GACtB,MAAKQ,WAAUC,QACfg5D,EAAyB,OAAbj3D,EAAOxC,GACZy6D,GAFuBhB,EAAW,KAAOj3D,GAIlDi4D,EAAQhB,SAAW,SAASz5D,GAC1B,MAAKQ,WAAUC,QACfg5D,EAAyB,OAAbj3D,EAAOxC,GACZy6D,GAFuBhB,EAAWj3D,EAAO,MAI3CihC,GAA0Bg3B,EAAS/2B,IAoB5C/+B,GAAGmwD,OAAO6F,QAAU,WAElB,QAASnkD,GAAMomB,EAAU77B,GAEvB,IADA,GAAiCojC,GAAOoL,EAApCjsC,EAAI,GAAIC,EAAIq5B,EAASn8B,SAChB6C,EAAIC,GACXgsC,GAAQpL,EAAQvH,EAASt5B,IAAI/B,OAAa,EAAJR,EAAQ,EAAIA,GAClDojC,EAAMoL,KAAOrvC,MAAMqvC,IAAiB,GAARA,EAAY,EAAIA,EAGhD,QAASqrB,GAASt7D,GAChB,GAAIs9B,GAAWt9B,EAAKs9B,QACpB,IAAIA,GAAYA,EAASn8B,OAAQ,CAC/B,GAA8D0jC,GAAwB02B,EAA6Jt3D,EAA/O+K,EAAOwsD,EAAIx7D,GAAO0oD,KAAU+S,EAAYn+B,EAAS36B,QAAgB8rD,MAAwBhsC,EAAa,UAATi5C,EAAmB1sD,EAAKqd,GAAc,SAATqvC,EAAkB1sD,EAAKsd,GAAc,eAATovC,EAAqC,EAAb17D,EAAK+wB,MAAY/hB,EAAKsd,GAAKtd,EAAKqd,GAAK3c,KAAKiD,IAAI3D,EAAKqd,GAAIrd,EAAKsd,GAG9O,KAFApV,EAAMukD,EAAWzsD,EAAKqd,GAAKrd,EAAKsd,GAAKtsB,EAAKiC,OAC1CymD,EAAIzY,KAAO,GACHhsC,EAAIw3D,EAAUt6D,QAAU,GAC9BunD,EAAI1lD,KAAK6hC,EAAQ42B,EAAUx3D,EAAI,IAC/BykD,EAAIzY,MAAQpL,EAAMoL,KACL,aAATyrB,IAAwBH,EAAQI,EAAMjT,EAAKjmC,KAAOgsC,GACpDgN,EAAUj0C,MACVinC,EAAO8M,IAEP7S,EAAIzY,MAAQyY,EAAIlhC,MAAMyoB,KACtBhiC,EAASy6C,EAAKjmC,EAAGzT,GAAM,GACvByT,EAAI/S,KAAKiD,IAAI3D,EAAKqd,GAAIrd,EAAKsd,IAC3Bo8B,EAAIvnD,OAASunD,EAAIzY,KAAO,EACxBwe,MAGA/F,GAAIvnD,SACN8M,EAASy6C,EAAKjmC,EAAGzT,GAAM,GACvB05C,EAAIvnD,OAASunD,EAAIzY,KAAO,GAE1B3S,EAASvoB,QAAQumD,IAGrB,QAASM,GAAS57D,GAChB,GAAIs9B,GAAWt9B,EAAKs9B,QACpB,IAAIA,GAAYA,EAASn8B,OAAQ,CAC/B,GAAoD0jC,GAAhD71B,EAAOwsD,EAAIx7D,GAAOy7D,EAAYn+B,EAAS36B,QAAgB+lD,IAG3D,KAFAxxC,EAAMukD,EAAWzsD,EAAKqd,GAAKrd,EAAKsd,GAAKtsB,EAAKiC,OAC1CymD,EAAIzY,KAAO,EACJpL,EAAQ42B,EAAUj0C,OACvBkhC,EAAI1lD,KAAK6hC,GACT6jB,EAAIzY,MAAQpL,EAAMoL,KACH,MAAXpL,EAAMngC,IACRuJ,EAASy6C,EAAK7jB,EAAMngC,EAAIsK,EAAKqd,GAAKrd,EAAKsd,GAAItd,GAAOysD,EAAUt6D,QAC5DunD,EAAIvnD,OAASunD,EAAIzY,KAAO,EAG5B3S,GAASvoB,QAAQ6mD,IAGrB,QAASD,GAAMjT,EAAKjmC,GAElB,IADA,GAAkBnR,GAAd9L,EAAIkjD,EAAIzY,KAAS4rB,EAAO,EAAGC,MAAiB93D,EAAI,GAAIC,EAAIykD,EAAIvnD,SACvD6C,EAAIC,IACLqN,EAAIo3C,EAAI1kD,GAAGisC,QACT6rB,EAAJxqD,IAAUwqD,EAAOxqD,GACjBA,EAAIuqD,IAAMA,EAAOvqD,GAIvB,OAFA9L,IAAKA,EACLid,GAAKA,EACEjd,EAAIkK,KAAK+C,IAAIgQ,EAAIo5C,EAAOE,EAAQv2D,EAAGA,GAAKid,EAAIq5C,EAAOC,QAE5D,QAAS9tD,GAASy6C,EAAKjmC,EAAGzT,EAAM+6C,GAC9B,GAAqFv9C,GAAjFxI,EAAI,GAAIC,EAAIykD,EAAIvnD,OAAQT,EAAIsO,EAAKtO,EAAGgO,EAAIM,EAAKN,EAAGiC,EAAI8R,EAAI1R,EAAM23C,EAAIzY,KAAOxtB,GAAK,CAClF,IAAIA,GAAKzT,EAAKqd,GAAI,CAEhB,KADI09B,GAASp5C,EAAI3B,EAAKsd,MAAI3b,EAAI3B,EAAKsd,MAC1BtoB,EAAIC,GACXuI,EAAIk8C,EAAI1kD,GACRwI,EAAE9L,EAAIA,EACN8L,EAAEkC,EAAIA,EACNlC,EAAE8f,GAAK3b,EACPjQ,GAAK8L,EAAE6f,GAAK3c,KAAKiD,IAAI3D,EAAKtO,EAAIsO,EAAKqd,GAAK3rB,EAAGiQ,EAAII,EAAMvE,EAAEyjC,KAAOt/B,GAAK,EAErEnE,GAAE9H,GAAI,EACN8H,EAAE6f,IAAMrd,EAAKtO,EAAIsO,EAAKqd,GAAK3rB,EAC3BsO,EAAKN,GAAKiC,EACV3B,EAAKsd,IAAM3b,MACN,CAEL,KADIo5C,GAASp5C,EAAI3B,EAAKqd,MAAI1b,EAAI3B,EAAKqd,MAC1BroB,EAAIC,GACXuI,EAAIk8C,EAAI1kD,GACRwI,EAAE9L,EAAIA,EACN8L,EAAEkC,EAAIA,EACNlC,EAAE6f,GAAK1b,EACPjC,GAAKlC,EAAE8f,GAAK5c,KAAKiD,IAAI3D,EAAKN,EAAIM,EAAKsd,GAAK5d,EAAGiC,EAAII,EAAMvE,EAAEyjC,KAAOt/B,GAAK,EAErEnE,GAAE9H,GAAI,EACN8H,EAAE8f,IAAMtd,EAAKN,EAAIM,EAAKsd,GAAK5d,EAC3BM,EAAKtO,GAAKiQ,EACV3B,EAAKqd,IAAM1b,GAGf,QAAS0qD,GAAQ95D,GACf,GAAI27B,GAAQ8+B,GAAY53B,EAAU7iC,GAAIi8B,EAAON,EAAM,EASnD,OARAM,GAAK98B,EAAI,EACT88B,EAAK9uB,EAAI,EACT8uB,EAAKnR,GAAKnpB,EAAK,GACfs6B,EAAKlR,GAAKppB,EAAK,GACX84D,GAAU53B,EAAU6zB,QAAQz6B,GAChCtmB,GAAQsmB,GAAQA,EAAKnR,GAAKmR,EAAKlR,GAAKkR,EAAKv7B;CACxC+5D,EAAWJ,EAAWN,GAAU99B,GAC7By+B,IAAQD,EAAW9+B,GAChBA,EAvGT,GAA4I8+B,GAAxI53B,EAAY/+B,GAAGmwD,OAAOpxB,YAAarzB,EAAQrB,KAAKqB,MAAO7N,GAAS,EAAG,GAAKkL,EAAU,KAAMotD,EAAMtzB,GAA0B+zB,GAAS,EAAiBP,EAAO,WAAYK,EAAQ,IAAM,EAAIrsD,KAAKyC,KAAK,GAiJrM,OAxCAkpD,GAAQn4D,KAAO,SAASxC,GACtB,MAAKQ,WAAUC,QACf+B,EAAOxC,EACA26D,GAFuBn4D,GAIhCm4D,EAAQjtD,QAAU,SAAS1N,GAEzB,QAASw7D,GAAYl8D,GACnB,GAAI4W,GAAIlW,EAAEsL,KAAKqvD,EAASr7D,EAAMA,EAAK+wB,MACnC,OAAY,OAALna,EAAYsxB,GAAyBloC,GAAQmoC,GAAqBnoC,EAAmB,gBAAN4W,IAAmBA,EAAGA,EAAGA,EAAGA,GAAMA,GAE1H,QAASulD,GAAYn8D,GACnB,MAAOmoC,IAAqBnoC,EAAMU,GANpC,IAAKQ,UAAUC,OAAQ,MAAOiN,EAQ9B,IAAInI,EAGJ,OAFAu1D,GAAuB,OAAhBptD,EAAU1N,GAAawnC,GAAiD,aAArBjiC,QAAcvF,IAAoBw7D,EAAuB,WAATj2D,GAAqBvF,GAAMA,EAAGA,EAAGA,EAAGA,GAC9Iy7D,GAAeA,EACRd,GAETA,EAAQtqD,MAAQ,SAASrQ,GACvB,MAAKQ,WAAUC,QACf4P,EAAQrQ,EAAIgP,KAAKqB,MAAQw4B,OAClB8xB,GAFuBtqD,GAASw4B,QAIzC8xB,EAAQY,OAAS,SAASv7D,GACxB,MAAKQ,WAAUC,QACf86D,EAASv7D,EACTs7D,EAAW,KACJX,GAHuBY,GAKhCZ,EAAQU,MAAQ,SAASr7D,GACvB,MAAKQ,WAAUC,QACf46D,EAAQr7D,EACD26D,GAFuBU,GAIhCV,EAAQK,KAAO,SAASh7D,GACtB,MAAKQ,WAAUC,QACfu6D,EAAOh7D,EAAI,GACJ26D,GAFuBK,GAIzBv3B,GAA0Bk3B,EAASj3B,IA2B5C/+B,GAAG4+B,QACD6pB,OAAQ,SAASsO,EAAGC,GAClB,GAAIp4D,GAAI/C,UAAUC,MAGlB,OAFQ,GAAJ8C,IAAOo4D,EAAI,GACP,EAAJp4D,IAAOm4D,EAAI,GACR,WACL,GAAI17D,GAAGgO,EAAG4C,CACV,GACE5Q,GAAoB,EAAhBgP,KAAKu0B,SAAe,EACxBv1B,EAAoB,EAAhBgB,KAAKu0B,SAAe,EACxB3yB,EAAI5Q,EAAIA,EAAIgO,EAAIA,SACR4C,GAAKA,EAAI,EACnB,OAAO8qD,GAAIC,EAAI37D,EAAIgP,KAAKyC,KAAK,GAAKzC,KAAKoH,IAAIxF,GAAKA,KAGpDgrD,UAAW,WACT,GAAIr4B,GAAS5+B,GAAG4+B,OAAO6pB,OAAOpqD,MAAM2B,GAAInE,UACxC,OAAO,YACL,MAAOwO,MAAKM,IAAIi0B,OAGpBs4B,MAAO,SAASzxD,GACd,GAAIm5B,GAAS5+B,GAAG4+B,OAAOu4B,UAAU1xD,EACjC,OAAO,YACL,MAAOm5B,KAAWn5B,IAGtB0xD,UAAW,SAAS1xD,GAClB,MAAO,YACL,IAAK,GAAItF,GAAI,EAAGqF,EAAI,EAAOC,EAAJD,EAAOA,IAAKrF,GAAKkK,KAAKu0B,QAC7C,OAAOz+B,MAIbH,GAAG6R,QAkCH,IAAI6xB,KACFtuB,MAAOpX,EACPwT,KAAMxT,EAiBRgC,IAAG6R,MAAMmyB,OAAS,WAChB,MAAOH,KAAkB,EAAG,IAAO,EAAG,GAAK1K,IAAgB,GA6F7D,IAAI6L,KACF7kC,EAAG,EACH+L,EAAG,EACHqF,EAAG,EACHtF,EAAG,EACH7L,EAAG,EASLJ,IAAG6R,MAAMJ,IAAM,WACb,MAAOwzB,IAAajlC,GAAG6R,MAAMmyB,SAAShB,QAAS,EAAG,IAAM,IAAI,GAAQ,EAAG,KA+DzE,IAAIsC,IAAqBtlC,GAAGuN,OAAO,OAAQ83B,IACzCjwB,MAAO,SAAS/Z,GACd,OAAQgP,KAAKmH,MAAMnW,IAErBmW,KAAM,SAASnW,GACb,OAAQgP,KAAK+K,OAAO/Z,IAGxB2E,IAAG6R,MAAM7E,IAAM,WACb,MAAOu4B,IAAavlC,GAAG6R,MAAMmyB,SAAU,GAAK,EAAG,KAyCjDhkC,GAAG6R,MAAM/E,KAAO,WACd,MAAO9M,IAAG6R,MAAM7E,MAAMyG,SAAS,KAEjCzT,GAAG6R,MAAMulD,QAAU,WACjB,MAAOzxB,QACL10B,EAAG,QACH/V,UA4FJ8E,GAAG6R,MAAMwlD,WAAa,WACpB,MAAOr3D,IAAG6R,MAAMulD,UAAUriD,MAAMuiD,KAElCt3D,GAAG6R,MAAM0lD,WAAa,WACpB,MAAOv3D,IAAG6R,MAAMulD,UAAUriD,MAAMyiD,KAElCx3D,GAAG6R,MAAM4lD,YAAc,WACrB,MAAOz3D,IAAG6R,MAAMulD,UAAUriD,MAAM2iD,KAElC13D,GAAG6R,MAAM8lD,YAAc,WACrB,MAAO33D,IAAG6R,MAAMulD,UAAUriD,MAAM6iD,IAElC,IAAIN,KAAkB,QAAS,SAAU,QAAS,SAAU,QAAS,QAAS,SAAU,QAAS,SAAU,SAAUt0D,IAAIkK,IACrHsqD,IAAkB,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,UAAWx0D,IAAIkK,IACzNwqD,IAAmB,QAAS,QAAS,QAAS,SAAU,QAAS,QAAS,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,UAAW10D,IAAIkK,IACxN0qD,IAAmB,QAAS,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,QAAS,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,QAAS,SAAU,UAAW50D,IAAIkK,GAC7NlN,IAAG6R,MAAM20B,SAAW,WAClB,MAAOF,YAmCTtmC,GAAG6R,MAAMgmD,SAAW,WAClB,MAAOlxB,IAAkB,EAAG,GAAK,EAAG,KAiCtC3mC,GAAG6R,MAAMimD,UAAY,WACnB,MAAOlxB,KAAqB,KAAQ,EAAG,KAyBzC5mC,GAAG6R,MAAMi1B,SAAW,WAClB,MAAOD,KAAoB,EAAG,KAuBhC7mC,GAAGmI,OAIHnI,GAAGmI,IAAIoc,IAAM,WAEX,QAASA,KACP,GAAIyX,GAAK3xB,KAAK+C,IAAI,GAAI65B,EAAY5oC,MAAMtB,KAAMlB,YAAaogC,EAAK5xB,KAAK+C,IAAI,GAAI+5B,EAAY9oC,MAAMtB,KAAMlB,YAAasvB,EAAKkc,EAAWhpC,MAAMtB,KAAMlB,WAAa2O,GAAOid,EAAK8f,EAASlpC,MAAMtB,KAAMlB,WAAa2O,GAAOo3B,EAAKv3B,KAAKuH,IAAI6V,EAAK0D,GAAK0c,EAAK1c,EAAK1D,EAAK,EAAI,CAE3P,IADSuU,EAALC,IAAS2L,EAAK3L,EAAIA,EAAKD,EAAIA,EAAK4L,GAChChG,GAAMgU,GAAI,MAAOmiB,GAAc97B,EAAI4L,IAAO7L,EAAK+7B,EAAc/7B,EAAI,EAAI6L,GAAM,IAAM,GACrF,IAAID,GAAI/iB,EAAImzC,EAAIC,EAAoBl5C,EAAIF,EAAI6H,EAAIC,EAAIoF,EAAIC,EAAIiF,EAAIG,EAA5C5Q,EAAK,EAAGC,EAAK,EAAmCwoB,IAOpE,KANIgvB,IAAOxwB,EAASppC,MAAMtB,KAAMlB,YAAc,GAAK,KACjDm8D,EAAKE,IAAcC,GAAiB9tD,KAAKyC,KAAKkvB,EAAKA,EAAKC,EAAKA,IAAOi8B,EAAU75D,MAAMtB,KAAMlB,WACrFgsC,IAAIpnB,GAAM,IACXwb,IAAIxb,EAAKlW,GAAQytD,EAAK/7B,EAAK5xB,KAAKU,IAAIktD,KACpCj8B,IAAIxb,EAAKjW,GAAQytD,EAAKh8B,EAAK3xB,KAAKU,IAAIktD,MAEtCh8B,EAAI,CACNld,EAAKkd,EAAK5xB,KAAK+B,IAAI+e,EAAK1K,GACxB5B,EAAKod,EAAK5xB,KAAKU,IAAIogB,EAAK1K,GACxBiG,EAAKuV,EAAK5xB,KAAK+B,IAAIqb,EAAKhH,GACxBkG,EAAKsV,EAAK5xB,KAAKU,IAAI0c,EAAKhH,EACxB,IAAIg4B,GAAKpuC,KAAKuH,IAAI6V,EAAK0D,EAAK,EAAI1K,IAAOrW,GAAI,EAAI,CAC/C,IAAIqW,GAAMinB,GAAgB3oB,EAAIF,EAAI6H,EAAIC,KAAQkhB,EAAK4Q,EAAI,CACrD,GAAI2f,IAAMjtC,EAAK1D,GAAM,CACrB1I,GAAKkd,EAAK5xB,KAAK+B,IAAIgsD,GACnBv5C,EAAKod,EAAK5xB,KAAKU,IAAIqtD,GACnB1xC,EAAKC,EAAK,UAGZ5H,GAAKF,EAAK,CAEZ,IAAImd,EAAI,CACNjQ,EAAKiQ,EAAK3xB,KAAK+B,IAAIqb,EAAKjH,GACxBwL,EAAKgQ,EAAK3xB,KAAKU,IAAI0c,EAAKjH,GACxByQ,EAAK+K,EAAK3xB,KAAK+B,IAAI+e,EAAK3K,GACxB4Q,EAAK4K,EAAK3xB,KAAKU,IAAIogB,EAAK3K,EACxB,IAAIg4B,GAAKnuC,KAAKuH,IAAIuZ,EAAK1D,EAAK,EAAIjH,IAAOpW,GAAI,EAAI,CAC/C,IAAIoW,GAAMknB,GAAgB3b,EAAIC,EAAIiF,EAAIG,KAAQ,EAAIyW,EAAK2Q,EAAI,CACzD,GAAI6f,IAAMltC,EAAK1D,GAAM,CACrBsE,GAAKiQ,EAAK3xB,KAAK+B,IAAIisD,GACnBrsC,EAAKgQ,EAAK3xB,KAAKU,IAAIstD,GACnBpnC,EAAKG,EAAK,UAGZrF,GAAKC,EAAK,CAEZ,KAAK4b,EAAKv9B,KAAKiD,IAAIjD,KAAKuH,IAAIqqB,EAAKD,GAAM,GAAIs8B,EAAaj6D,MAAMtB,KAAMlB,aAAe,KAAM,CACvFgpB,EAAUoX,EAALD,EAAU6L,EAAK,EAAI,CACxB,IAAI0wB,GAAW,MAANtnC,GAAelF,EAAIC,GAAa,MAANtF,GAAe3H,EAAIF,GAAOmS,IAA2BjS,EAAIF,IAAQoS,EAAIG,IAAQ1K,EAAIC,IAAQoF,EAAIC,IAAOpF,EAAK7H,EAAKw5C,EAAG,GAAI1xC,EAAKhI,EAAK05C,EAAG,GAAIzxC,EAAKJ,EAAK6xC,EAAG,GAAIxxC,EAAKJ,EAAK4xC,EAAG,GAAIC,EAAK,EAAInuD,KAAKU,IAAIV,KAAKC,MAAMsc,EAAKE,EAAKD,EAAKE,IAAO1c,KAAKyC,KAAK8Z,EAAKA,EAAKC,EAAKA,GAAMxc,KAAKyC,KAAKga,EAAKA,EAAKC,EAAKA,KAAQ,GAAI0xC,EAAKpuD,KAAKyC,KAAKyrD,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAC5W,IAAU,MAAN7xC,EAAY,CACd,GAAIgyC,GAAMruD,KAAKiD,IAAIs6B,GAAK3L,EAAKw8B,IAAOD,EAAK,IAAKG,EAAMhxB,GAA+B,MAAN1W,GAAelF,EAAIC,IAASiF,EAAIG,IAAQrS,EAAIF,GAAMod,EAAIy8B,EAAK7wB,GAAK+wB,EAAMjxB,IAA2BjhB,EAAIC,IAAQoF,EAAIC,GAAMiQ,EAAIy8B,EAAK7wB,EACzMD,KAAO8wB,EACTzvB,EAAKtrC,KAAK,IAAKg7D,EAAI,GAAI,IAAKD,EAAK,IAAKA,EAAK,QAAS7zC,EAAI,IAAK8zC,EAAI,GAAI,IAAK18B,EAAI,IAAKA,EAAI,MAAO,EAAI4L,EAAKH,GAAgBixB,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIC,EAAI,GAAG,GAAIA,EAAI,GAAG,IAAK,IAAK/wB,EAAI,IAAK+wB,EAAI,GAAI,IAAKF,EAAK,IAAKA,EAAK,QAAS7zC,EAAI,IAAK+zC,EAAI,IAEpO3vB,EAAKtrC,KAAK,IAAKg7D,EAAI,GAAI,IAAKD,EAAK,IAAKA,EAAK,QAAS7zC,EAAI,IAAK+zC,EAAI,QAGnE3vB,GAAKtrC,KAAK,IAAKohB,EAAI,IAAKF,EAE1B,IAAU,MAANoS,EAAY,CACd,GAAI4nC,GAAMxuD,KAAKiD,IAAIs6B,GAAK5L,EAAKy8B,IAAOD,EAAK,IAAKM,EAAMnxB,IAA2B5oB,EAAIF,IAAQoS,EAAIG,GAAM4K,GAAK68B,EAAKhxB,GAAKkxB,EAAMpxB,IAA2B5b,EAAIC,GAAY,MAANtF,GAAe3H,EAAIF,IAAS6H,EAAIC,GAAMqV,GAAK68B,EAAKhxB,EAC3MD,KAAOixB,EACT5vB,EAAKtrC,KAAK,IAAKo7D,EAAI,GAAI,IAAKF,EAAK,IAAKA,EAAK,QAASh0C,EAAI,IAAKk0C,EAAI,GAAI,IAAK/8B,EAAI,IAAKA,EAAI,MAAO6L,EAAKH,GAAgBqxB,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAID,EAAI,GAAG,GAAIA,EAAI,GAAG,IAAK,IAAK,EAAIjxB,EAAI,IAAKixB,EAAI,GAAI,IAAKD,EAAK,IAAKA,EAAK,QAASh0C,EAAI,IAAKi0C,EAAI,IAEpO7vB,EAAKtrC,KAAK,IAAKo7D,EAAI,GAAI,IAAKF,EAAK,IAAKA,EAAK,QAASh0C,EAAI,IAAKi0C,EAAI,QAGnE7vB,GAAKtrC,KAAK,IAAKouB,EAAI,IAAKC,OAG1Bid,GAAKtrC,KAAK,IAAKohB,EAAI,IAAKF,GACd,MAAN6H,GAAYuiB,EAAKtrC,KAAK,IAAKs+B,EAAI,IAAKA,EAAI,MAAOwc,EAAI,IAAK5Q,EAAI,IAAKnhB,EAAI,IAAKC,GAC9EsiB,EAAKtrC,KAAK,IAAKouB,EAAI,IAAKC,GACd,MAANiF,GAAYgY,EAAKtrC,KAAK,IAAKq+B,EAAI,IAAKA,EAAI,MAAOwc,EAAI,IAAK,EAAI3Q,EAAI,IAAK5W,EAAI,IAAKG,EAGpF,OADA6X,GAAKtrC,KAAK,KACHsrC,EAAKp2B,KAAK,IAEnB,QAASklD,GAAc97B,EAAI4L,GACzB,MAAO,MAAQ5L,EAAK,IAAMA,EAAK,IAAMA,EAAK,QAAU4L,EAAK,OAAS5L,EAAK,IAAMA,EAAK,IAAMA,EAAK,QAAU4L,EAAK,MAAQ5L,EA3EtH,GAAIgL,GAAcD,GAAuBG,EAAcD,GAAuBoxB,EAAevxB,GAASmxB,EAAYC,GAAgB9wB,EAAaD,GAAsBG,EAAWD,GAAoBG,EAAWD,EAoH/M,OAvCAjjB,GAAI0iB,YAAc,SAAS37B,GACzB,MAAKzP,WAAUC,QACfmrC,EAAch5B,GAAW3C,GAClBiZ,GAFuB0iB,GAIhC1iB,EAAI4iB,YAAc,SAAS77B,GACzB,MAAKzP,WAAUC,QACfqrC,EAAcl5B,GAAW3C,GAClBiZ,GAFuB4iB,GAIhC5iB,EAAI+zC,aAAe,SAAShtD,GAC1B,MAAKzP,WAAUC,QACfw8D,EAAerqD,GAAW3C,GACnBiZ,GAFuB+zC,GAIhC/zC,EAAI2zC,UAAY,SAAS5sD,GACvB,MAAKzP,WAAUC,QACfo8D,EAAY5sD,GAAK6sD,GAAiBA,GAAiBlqD,GAAW3C,GACvDiZ,GAFuB2zC,GAIhC3zC,EAAI8iB,WAAa,SAAS/7B,GACxB,MAAKzP,WAAUC,QACfurC,EAAap5B,GAAW3C,GACjBiZ,GAFuB8iB,GAIhC9iB,EAAIgjB,SAAW,SAASj8B,GACtB,MAAKzP,WAAUC,QACfyrC,EAAWt5B,GAAW3C,GACfiZ,GAFuBgjB,GAIhChjB,EAAIkjB,SAAW,SAASn8B,GACtB,MAAKzP,WAAUC,QACf2rC,EAAWx5B,GAAW3C,GACfiZ,GAFuBkjB,GAIhCljB,EAAI8kC,SAAW,WACb,GAAIp9C,KAAMg7B,EAAY5oC,MAAMtB,KAAMlB,aAAcsrC,EAAY9oC,MAAMtB,KAAMlB,YAAc,EAAGX,IAAMmsC,EAAWhpC,MAAMtB,KAAMlB,aAAc0rC,EAASlpC,MAAMtB,KAAMlB,YAAc,EAAI2O,EAC3K,QAASH,KAAK+B,IAAIlR,GAAK+Q,EAAG5B,KAAKU,IAAI7P,GAAK+Q,IAEnCsY,EAET,IAAI4zC,IAAiB,MAqErBn4D,IAAGmI,IAAIuZ,KAAO,WACZ,MAAO+mB,IAAYzqC,GAErB,IAAI8qC,IAA2B9oC,GAAGgD,KAChCghC,OAAQ4E,GACRowB,gBAAiBjwB,GACjBv0B,KAAMw0B,GACNiwB,cAAe/vB,GACfgwB,aAAc/vB,GACdgwB,MAAOtvB,GACPuvB,aAAcnvB,GACdovB,eAAgBnvB,GAChBkmB,OAAQjmB,GACRmvB,SAAU9vB,GACV+vB,gBAAiBnwB,GACjBowB,kBAAmBjwB,GACnBkwB,SAAUhvB,IAEZ3B,IAAyBp5B,QAAQ,SAASlT,EAAKI,GAC7CA,EAAMJ,IAAMA,EACZI,EAAMsf,OAAS,WAAW1Y,KAAKhH,IA8IjC,IAAI4tC,KAA4B,EAAG,EAAI,EAAG,EAAI,EAAG,GAAKC,IAA4B,EAAG,EAAI,EAAG,EAAI,EAAG,GAAKN,IAA4B,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EA0CzJ/pC,IAAGmI,IAAIuZ,KAAKg4C,OAAS,WACnB,GAAIh4C,GAAO+mB,GAAYiC,GAGvB,OAFAhpB,GAAKiD,OAASjD,EAAKrmB,QAAUqmB,GAAKrmB,EAClCqmB,EAAK6M,MAAQ7M,EAAKrY,QAAUqY,GAAKrY,EAC1BqY,GAsFTwnB,GAAsBt2B,QAAUu2B,GAChCA,GAAqBv2B,QAAUs2B,GAC/BlpC,GAAGmI,IAAIyiC,KAAO,WACZ,MAAOD,IAAY3sC,IAErBgC,GAAGmI,IAAIyiC,KAAK8uB,OAAS,WACnB,GAAI9uB,GAAOD,GAAYD,GAOvB,OANAE,GAAKjmB,OAASimB,EAAKvvC,QAAUuvC,GAAKvvC,EAClCuvC,EAAK3D,YAAc2D,EAAK7rB,SAAW6rB,GAAK7rB,GACxC6rB,EAAKzD,YAAcyD,EAAKlkB,SAAWkkB,GAAKlkB,GACxCkkB,EAAKrc,MAAQqc,EAAKvhC,QAAUuhC,GAAKvhC,EACjCuhC,EAAKvD,WAAauD,EAAK/rB,SAAW+rB,GAAK/rB,GACvC+rB,EAAKrD,SAAWqD,EAAKjkB,SAAWikB,GAAKjkB,GAC9BikB,GAET5qC,GAAGmI,IAAImoD,MAAQ,WAEb,QAASA,GAAMp0D,EAAGyC,GAChB,GAAIwB,GAAIgyC,EAASp1C,KAAMoB,EAAQjC,EAAGyC,GAAIsS,EAAIkhC,EAASp1C,KAAMmB,EAAQhC,EAAGyC,EACpE,OAAO,IAAMwB,EAAEqgB,GAAK+D,EAAIpkB,EAAE8L,EAAG9L,EAAEsgB,GAAItgB,EAAEsnB,GAAKtnB,EAAEgrB,KAAOwuC,EAAOx5D,EAAG8Q,GAAK2oD,EAAMz5D,EAAE8L,EAAG9L,EAAEsgB,GAAItgB,EAAE8L,EAAG9L,EAAEqgB,IAAMo5C,EAAMz5D,EAAE8L,EAAG9L,EAAEsgB,GAAIxP,EAAEhF,EAAGgF,EAAEuP,IAAM+D,EAAItT,EAAEhF,EAAGgF,EAAEwP,GAAIxP,EAAEwW,GAAKxW,EAAEka,IAAMyuC,EAAM3oD,EAAEhF,EAAGgF,EAAEwP,GAAItgB,EAAE8L,EAAG9L,EAAEqgB,KAAO,IAE7L,QAAS2xB,GAAS0nB,EAAM1wD,EAAGjN,EAAGyC,GAC5B,GAAIwzC,GAAWhpC,EAAExC,KAAKkzD,EAAM39D,EAAGyC,GAAIsN,EAAI0Y,EAAOhe,KAAKkzD,EAAM1nB,EAAUxzC,GAAIwsB,EAAKkc,EAAW1gC,KAAKkzD,EAAM1nB,EAAUxzC,GAAK6L,GAAOid,EAAK8f,EAAS5gC,KAAKkzD,EAAM1nB,EAAUxzC,GAAK6L,EAChK,QACEyB,EAAGA,EACHkf,GAAIA,EACJ1D,GAAIA,EACJjH,IAAMvU,EAAI5B,KAAK+B,IAAI+e,GAAKlf,EAAI5B,KAAKU,IAAIogB,IACrC1K,IAAMxU,EAAI5B,KAAK+B,IAAIqb,GAAKxb,EAAI5B,KAAKU,IAAI0c,KAGzC,QAASkyC,GAAOz+D,EAAGC,GACjB,MAAOD,GAAEiwB,IAAMhwB,EAAEgwB,IAAMjwB,EAAEusB,IAAMtsB,EAAEssB,GAEnC,QAASlD,GAAItY,EAAGsF,EAAGrW,GACjB,MAAO,IAAM+Q,EAAI,IAAMA,EAAI,SAAU/Q,EAAIkP,IAAK,MAAQmH,EAExD,QAASqoD,GAAM59B,EAAIxb,EAAIyb,EAAIxb,GACzB,MAAO,SAAWA,EAtBpB,GAAItiB,GAASwwB,GAAWzwB,EAAS0wB,GAAWjK,EAASymB,GAAoB/D,EAAaD,GAAsBG,EAAWD,EAiDvH,OAzBAgpB,GAAM3rC,OAAS,SAASrZ,GACtB,MAAKzP,WAAUC,QACf6oB,EAAS1W,GAAW3C,GACbglD,GAFuB3rC,GAIhC2rC,EAAMnyD,OAAS,SAASmN,GACtB,MAAKzP,WAAUC,QACfqC,EAAS8P,GAAW3C,GACbglD,GAFuBnyD,GAIhCmyD,EAAMpyD,OAAS,SAASoN,GACtB,MAAKzP,WAAUC,QACfoC,EAAS+P,GAAW3C,GACbglD,GAFuBpyD,GAIhCoyD,EAAMjpB,WAAa,SAAS/7B,GAC1B,MAAKzP,WAAUC,QACfurC,EAAap5B,GAAW3C,GACjBglD,GAFuBjpB,GAIhCipB,EAAM/oB,SAAW,SAASj8B,GACxB,MAAKzP,WAAUC,QACfyrC,EAAWt5B,GAAW3C,GACfglD,GAFuB/oB,GAIzB+oB,GAKTtwD,GAAGmI,IAAI2xD,SAAW,WAEhB,QAASA,GAAS59D,EAAGyC,GACnB,GAAI6hB,GAAKriB,EAAOwI,KAAK5J,KAAMb,EAAGyC,GAAIo7D,EAAK77D,EAAOyI,KAAK5J,KAAMb,EAAGyC,GAAI8G,GAAK+a,EAAGnX,EAAI0wD,EAAG1wD,GAAK,EAAGkI,GAAMiP,GAC3FnlB,EAAGmlB,EAAGnlB,EACNgO,EAAG5D,IAEHpK,EAAG0+D,EAAG1+D,EACNgO,EAAG5D,GACFs0D,EAEH,OADAxoD,GAAIA,EAAEvO,IAAIypB,GACH,IAAMlb,EAAE,GAAK,IAAMA,EAAE,GAAK,IAAMA,EAAE,GAAK,IAAMA,EAAE,GAVxD,GAAIpT,GAASwwB,GAAWzwB,EAAS0wB,GAAWnC,EAAa4e,EA2BzD,OAfAyuB,GAAS37D,OAAS,SAAS9C,GACzB,MAAKQ,WAAUC,QACfqC,EAAS8P,GAAW5S,GACby+D,GAFuB37D,GAIhC27D,EAAS57D,OAAS,SAAS7C,GACzB,MAAKQ,WAAUC,QACfoC,EAAS+P,GAAW5S,GACby+D,GAFuB57D,GAIhC47D,EAASrtC,WAAa,SAASpxB,GAC7B,MAAKQ,WAAUC,QACf2wB,EAAapxB,EACNy+D,GAFuBrtC,GAIzBqtC,GAKT95D,GAAGmI,IAAI2xD,SAASJ,OAAS,WACvB,GAAII,GAAW95D,GAAGmI,IAAI2xD,WAAYrtC,EAAa4e,GAA2B2uB,EAAcF,EAASrtC,UAIjG,OAHAqtC,GAASrtC,WAAa,SAASpxB,GAC7B,MAAOQ,WAAUC,OAASk+D,EAAY1uB,GAAgC7e,EAAapxB,IAAMoxB,GAEpFqtC,GAQT95D,GAAGmI,IAAI2J,OAAS,WAEd,QAASA,GAAO5V,EAAGyC,GACjB,OAAQs7D,GAAev6D,IAAIkB,EAAK+F,KAAK5J,KAAMb,EAAGyC,KAAO8sC,IAAqB5tC,EAAK8I,KAAK5J,KAAMb,EAAGyC,IAF/F,GAAIiC,GAAO4qC,GAAmB3tC,EAAO0tC,EAcrC,OAVAz5B,GAAOlR,KAAO,SAASvF,GACrB,MAAKQ,WAAUC,QACf8E,EAAOqN,GAAW5S,GACXyW,GAFuBlR,GAIhCkR,EAAOjU,KAAO,SAASxC,GACrB,MAAKQ,WAAUC,QACf+B,EAAOoQ,GAAW5S,GACXyW,GAFuBjU,GAIzBiU,EAYT,IAAImoD,IAAiBj6D,GAAGgD,KACtB6uB,OAAQ4Z,GACRyuB,MAAO,SAASr8D,GACd,GAAIoO,GAAI5B,KAAKyC,KAAKjP,EAAO,GAAK,CAC9B,OAAO,IAAM,GAAKoO,EAAI,KAAOA,EAAI,KAAOA,EAAI,IAAM,GAAKA,EAAI,IAAMA,EAAI,KAAOA,EAAI,IAAM,EAAIA,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAM,EAAIA,EAAI,KAAOA,EAAI,IAAMA,EAAI,IAAM,GAAKA,EAAI,KAEtKkuD,QAAS,SAASt8D,GAChB,GAAI64B,GAAKrsB,KAAKyC,KAAKjP,GAAQ,EAAIu8D,KAAsB3jC,EAAKC,EAAK0jC,EAC/D,OAAO,OAAS1jC,EAAK,IAAMD,EAAK,QAAeC,EAAK,KAAOD,EAAK,OAElE4jC,OAAQ,SAASx8D,GACf,GAAIoO,GAAI5B,KAAKyC,KAAKjP,GAAQ,CAC1B,OAAO,KAAOoO,EAAI,KAAOA,EAAI,IAAMA,EAAI,KAAOA,EAAI,IAAMA,EAAI,IAAMA,EAAI,KAAOA,EAAI,IAAMA,EAAI,KAE7FquD,gBAAiB,SAASz8D,GACxB,GAAI44B,GAAKpsB,KAAKyC,KAAKjP,EAAO08D,IAAqB7jC,EAAKD,EAAK8jC,GAAqB,CAC9E,OAAO,MAAQ7jC,EAAK,IAAMD,EAAK,KAAOC,EAAK,KAAOD,EAAK,KAAOC,EAAK,KAErE8jC,cAAe,SAAS38D,GACtB,GAAI44B,GAAKpsB,KAAKyC,KAAKjP,EAAO08D,IAAqB7jC,EAAKD,EAAK8jC,GAAqB,CAC9E,OAAO,OAAS7jC,EAAK,IAAMD,EAAK,IAAMC,EAAK,KAAOD,EAAK,IAAMC,EAAK,MAGtE12B,IAAGmI,IAAIsyD,YAAcR,GAAev8D,MACpC,IAAI68D,IAAqBlwD,KAAKyC,KAAK,GAAIstD,GAAqB/vD,KAAK6lB,IAAI,GAAK7jB,GAC1ErL,IAAsByrC,WAAa,SAASjuC,GAO1C,IAAK,GANoG2zC,GAAUx3C,EAA/GqxC,EAAKuN,MAA4BmhB,GAAiBv4D,EAAKmqC,GAAuB9tC,GAAO6zC,KAAgC5F,EAAakuB,KACpIvpD,KAAMN,KAAKT,MACXs8B,KAAMpS,GACNhqB,MAAO,EACPm8B,SAAU,KAEHlnC,EAAI,GAAIC,EAAI1I,KAAKjB,SAAU0J,EAAIC,GAAK,CAC3C4sC,EAAU10C,KAAKw0C,KACf,KAAK,GAAIzsC,GAAQ3I,KAAKyI,GAAI7G,EAAI,GAAIC,EAAI8G,EAAM5J,SAAU6C,EAAIC,IACpDjE,EAAO+K,EAAM/G,KAAI4tC,GAAkB5xC,EAAMgE,EAAGwD,EAAI6pC,EAAIS,GACxD0F,EAASx0C,KAAKhD,GAGlB,MAAOoxC,IAAcsG,EAAWlwC,EAAI6pC,IAEtChrC,GAAsB8qC,UAAY,SAASttC,GACzC,MAAOzB,MAAK81C,KAAa,MAARr0C,EAAeq5C,GAAyBnM,GAAyBY,GAAuB9tC,KAE3G,IAiBsD+6C,IAAwBohB,GAjB1E9iB,GAAyBnM,GAAyBY,MAiBlDL,MAA6ByuB,GAAkB,CACnDzuB,IAAuBtlC,KAAO3F,GAAsB2F,KACpDslC,GAAuB4E,MAAQ7vC,GAAsB6vC,MACrD5E,GAAuBtxC,KAAOqG,GAAsBrG,KACpDsxC,GAAuBpuC,KAAOmD,GAAsBnD,KACpDmC,GAAGysC,WAAa,SAAS7mC,EAAWpH,GAClC,MAAOoH,IAAaA,EAAU6mC,WAAa8M,GAAyB3zC,EAAU6mC,WAAWjuC,GAAQoH,EAAY5F,GAAG4F,YAAY6mC,WAAW7mC,IAEzI5F,GAAGysC,WAAW9vC,UAAYsvC,GAC1BA,GAAuBtkC,OAAS,SAASzG,GACvC,GAAuDixC,GAAUC,EAASz3C,EAAtEqxC,EAAKjvC,KAAKivC,GAAI7pC,EAAKpF,KAAKuH,UAAW+tC,IACvCnxC,GAAWD,EAAsBC,EACjC,KAAK,GAAIsE,GAAI,GAAIC,EAAI1I,KAAKjB,SAAU0J,EAAIC,GAAK,CAC3C4sC,EAAU10C,KAAKw0C,KACf,KAAK,GAAIzsC,GAAQ3I,KAAKyI,GAAI7G,EAAI,GAAIC,EAAI8G,EAAM5J,SAAU6C,EAAIC,IACnDjE,EAAO+K,EAAM/G,MAAQyzC,EAAUlxC,EAASyF,KAAKhM,EAAMA,EAAKsK,SAAUtG,EAAG6G,KACpE,YAAc7K,KAAMy3C,EAAQntC,SAAWtK,EAAKsK,UAChDsnC,GAAkB6F,EAASzzC,EAAGwD,EAAI6pC,EAAIrxC,EAAKwH,GAAI6pC,IAC/CmG,EAASx0C,KAAKy0C,IAEdD,EAASx0C,KAAK,MAIpB,MAAOouC,IAAcsG,EAAWlwC,EAAI6pC,IAEtCC,GAAuBqG,UAAY,SAASpxC,GAC1C,GAAuDixC,GAAUyoB,EAAUjgE,EAAMy3C,EAAS3F,EAAtFT,EAAKjvC,KAAKivC,GAAI7pC,EAAKpF,KAAKuH,UAAW+tC,IACvCnxC,GAAWE,EAAyBF,EACpC,KAAK,GAAIsE,GAAI,GAAIC,EAAI1I,KAAKjB,SAAU0J,EAAIC,GACtC,IAAK,GAAIC,GAAQ3I,KAAKyI,GAAI7G,EAAI,GAAIC,EAAI8G,EAAM5J,SAAU6C,EAAIC,GACxD,GAAIjE,EAAO+K,EAAM/G,GAAI,CACnB8tC,EAAa9xC,EAAKwH,GAAI6pC,GACtB4uB,EAAW15D,EAASyF,KAAKhM,EAAMA,EAAKsK,SAAUtG,EAAG6G,GACjD6sC,EAAU10C,KAAKw0C,KACf,KAAK,GAAI/1C,GAAI,GAAI+K,EAAIyzD,EAAS9+D,SAAUM,EAAI+K,IACtCirC,EAAUwoB,EAASx+D,KAAImwC,GAAkB6F,EAASh2C,EAAG+F,EAAI6pC,EAAIS,GACjE0F,EAASx0C,KAAKy0C,GAKtB,MAAOrG,IAAcsG,EAAWlwC,EAAI6pC,IAEtCC,GAAuBjlC,OAAS,SAASA,GACvC,GAAoBmrC,GAAUzsC,EAAO/K,EAAjC03C,IACkB,mBAAXrrC,KAAuBA,EAAS9B,EAAoB8B,GAC/D,KAAK,GAAIxB,GAAI,EAAGC,EAAI1I,KAAKjB,OAAY2J,EAAJD,EAAOA,IAAK,CAC3C6sC,EAAU10C,KAAKw0C,KACf,KAAK,GAAIzsC,GAAQ3I,KAAKyI,GAAI7G,EAAI,EAAGC,EAAI8G,EAAM5J,OAAY8C,EAAJD,EAAOA,KACnDhE,EAAO+K,EAAM/G,KAAOqI,EAAOL,KAAKhM,EAAMA,EAAKsK,SAAUtG,EAAG6G,IAC3D2sC,EAASx0C,KAAKhD,GAIpB,MAAOoxC,IAAcsG,EAAWt1C,KAAKuH,UAAWvH,KAAKivC,KAEvDC,GAAuBE,MAAQ,SAAS3tC,EAAM2tC,GAC5C,GAAIH,GAAKjvC,KAAKivC,GAAI7pC,EAAKpF,KAAKuH,SAC5B,OAAIzI,WAAUC,OAAS,EAAUiB,KAAKpC,OAAOwH,GAAI6pC,GAAIG,MAAMzsC,IAAIlB,GACxD8G,EAAkBvI,KAAe,MAATovC,EAAgB,SAASxxC,GACtDA,EAAKwH,GAAI6pC,GAAIG,MAAMtsC,OAAOrB,IACxB,SAAS7D,GACXA,EAAKwH,GAAI6pC,GAAIG,MAAMrsC,IAAItB,EAAM2tC,MAWjCF,GAAuBgB,KAAO,SAAS4tB,EAAQj+D,GAM7C,QAAS2E,KACPxE,KAAKyE,gBAAgBhD,GAEvB,QAASiD,KACP1E,KAAK2E,kBAAkBlD,EAAKmD,MAAOnD,EAAKoD,OAE1C,QAASk5D,GAAU3/D,GACjB,MAAY,OAALA,EAAYoG,GAAYpG,GAAK,GAAI,WACtC,GAAiCwD,GAA7BzD,EAAI6B,KAAKuG,aAAa9E,EAC1B,OAAOtD,KAAMC,IAAMwD,EAAIyhB,EAAYllB,EAAGC,GAAI,SAAS8V,GACjDlU,KAAK+E,aAAatD,EAAMG,EAAEsS,QAIhC,QAAS8pD,GAAY5/D,GACnB,MAAY,OAALA,EAAYsG,GAActG,GAAK,GAAI,WACxC,GAAqDwD,GAAjDzD,EAAI6B,KAAK61C,eAAep0C,EAAKmD,MAAOnD,EAAKoD,MAC7C,OAAO1G,KAAMC,IAAMwD,EAAIyhB,EAAYllB,EAAGC,GAAI,SAAS8V,GACjDlU,KAAKiF,eAAexD,EAAKmD,MAAOnD,EAAKoD,MAAOjD,EAAEsS,QAvBpD,GAAIpV,UAAUC,OAAS,EAAG,CACxB,IAAKc,IAASi+D,GAAQ99D,KAAKkwC,KAAKrwC,EAAOi+D,EAAOj+D,GAC9C,OAAOG,MAET,GAAIqjB,GAAwB,aAAVy6C,EAAwBp+B,GAA0BtD,GAAgB36B,EAAOwB,GAAGmC,GAAGC,QAAQy4D,EAuBzG,OAAO3uB,IAAoBnvC,KAAM,QAAU89D,EAAQj+D,EAAO4B,EAAKoD,MAAQm5D,EAAcD,IAEvF7uB,GAAuB6uB,UAAY,SAASD,EAAQ1uB,GAElD,QAAS2uB,GAAU5+D,EAAGyC,GACpB,GAAIwK,GAAIgjC,EAAMxlC,KAAK5J,KAAMb,EAAGyC,EAAG5B,KAAKuG,aAAa9E,GACjD,OAAO2K,IAAK,SAAS8H,GACnBlU,KAAK+E,aAAatD,EAAM2K,EAAE8H,KAG9B,QAAS8pD,GAAY7+D,EAAGyC,GACtB,GAAIwK,GAAIgjC,EAAMxlC,KAAK5J,KAAMb,EAAGyC,EAAG5B,KAAK61C,eAAep0C,EAAKmD,MAAOnD,EAAKoD,OACpE,OAAOuH,IAAK,SAAS8H,GACnBlU,KAAKiF,eAAexD,EAAKmD,MAAOnD,EAAKoD,MAAOuH,EAAE8H,KAVlD,GAAIzS,GAAOwB,GAAGmC,GAAGC,QAAQy4D,EAazB,OAAO99D,MAAKovC,MAAM,QAAU0uB,EAAQr8D,EAAKoD,MAAQm5D,EAAcD,IAEjE7uB,GAAuBroC,MAAQ,SAASpF,EAAM5B,EAAO8G,GAUnD,QAASC,KACP5G,KAAK6G,MAAMC,eAAerF,GAE5B,QAASw8D,GAAY7/D,GACnB,MAAY,OAALA,EAAYwI,GAAaxI,GAAK,GAAI,WACvC,GAA6EwD,GAAzEzD,EAAIH,EAAUgC,MAAMi2C,iBAAiBj2C,KAAM,MAAMk2C,iBAAiBz0C,EACtE,OAAOtD,KAAMC,IAAMwD,EAAIw6B,GAAej+B,EAAGC,GAAI,SAAS8V,GACpDlU,KAAK6G,MAAMG,YAAYvF,EAAMG,EAAEsS,GAAIvN,OAhBzC,GAAI9E,GAAI/C,UAAUC,MAClB,IAAQ,EAAJ8C,EAAO,CACT,GAAoB,gBAATJ,GAAmB,CACpB,EAAJI,IAAOhC,EAAQ,GACnB,KAAK8G,IAAYlF,GAAMzB,KAAK6G,MAAMF,EAAUlF,EAAKkF,GAAW9G,EAC5D,OAAOG,MAET2G,EAAW,GAab,MAAOwoC,IAAoBnvC,KAAM,SAAWyB,EAAM5B,EAAOo+D,IAE3D/uB,GAAuBgvB,WAAa,SAASz8D,EAAM2tC,EAAOzoC,GAExD,QAASu3D,GAAW/+D,EAAGyC,GACrB,GAAIwK,GAAIgjC,EAAMxlC,KAAK5J,KAAMb,EAAGyC,EAAG5D,EAAUgC,MAAMi2C,iBAAiBj2C,KAAM,MAAMk2C,iBAAiBz0C,GAC7F,OAAO2K,IAAK,SAAS8H,GACnBlU,KAAK6G,MAAMG,YAAYvF,EAAM2K,EAAE8H,GAAIvN,IAGvC,MAPI7H,WAAUC,OAAS,IAAG4H,EAAW,IAO9B3G,KAAKovC,MAAM,SAAW3tC,EAAMy8D,IAErChvB,GAAuBiH,KAAO,SAASt2C,GACrC,MAAOsvC,IAAoBnvC,KAAM,OAAQH,EAAOwvC,KAQlDH,GAAuBpsC,OAAS,WAC9B,GAAIsC,GAAKpF,KAAKuH,SACd,OAAOvH,MAAK81C,KAAK,iBAAkB,WACjC,GAAIthC,EACAxU,MAAKoF,GAAI0pC,MAAQ,IAAMt6B,EAAIxU,KAAK8H,aAAa0M,EAAEzM,YAAY/H,SAGnEkvC,GAAuBU,KAAO,SAAS/vC,GACrC,GAAIovC,GAAKjvC,KAAKivC,GAAI7pC,EAAKpF,KAAKuH,SAC5B,OAAIzI,WAAUC,OAAS,EAAUiB,KAAKpC,OAAOwH,GAAI6pC,GAAIW,MAChC,kBAAV/vC,KAAsBA,EAAQoD,GAAG2sC,KAAKtuC,MAAM2B,GAAInE,YACpDyJ,EAAkBvI,KAAM,SAASpC,GACtCA,EAAKwH,GAAI6pC,GAAIW,KAAO/vC,MAGxBqvC,GAAuB17B,MAAQ,SAAS3T,GACtC,GAAIovC,GAAKjvC,KAAKivC,GAAI7pC,EAAKpF,KAAKuH,SAC5B,OAAIzI,WAAUC,OAAS,EAAUiB,KAAKpC,OAAOwH,GAAI6pC,GAAIz7B,MAC9CjL,EAAkBvI,KAAuB,kBAAVH,GAAuB,SAASjC,EAAMgE,EAAG6G,GAC7E7K,EAAKwH,GAAI6pC,GAAIz7B,OAAS3T,EAAM+J,KAAKhM,EAAMA,EAAKsK,SAAUtG,EAAG6G,KACtD5I,GAASA,EAAO,SAASjC,GAC5BA,EAAKwH,GAAI6pC,GAAIz7B,MAAQ3T,MAGzBqvC,GAAuBS,SAAW,SAAS9vC,GACzC,GAAIovC,GAAKjvC,KAAKivC,GAAI7pC,EAAKpF,KAAKuH,SAC5B,OAAIzI,WAAUC,OAAS,EAAUiB,KAAKpC,OAAOwH,GAAI6pC,GAAIU,SAC9CpnC,EAAkBvI,KAAuB,kBAAVH,GAAuB,SAASjC,EAAMgE,EAAG6G,GAC7E7K,EAAKwH,GAAI6pC,GAAIU,SAAWriC,KAAK+C,IAAI,EAAGxQ,EAAM+J,KAAKhM,EAAMA,EAAKsK,SAAUtG,EAAG6G,MACpE5I,EAAQyN,KAAK+C,IAAI,EAAGxQ,GAAQ,SAASjC,GACxCA,EAAKwH,GAAI6pC,GAAIU,SAAW9vC,MAG5BqvC,GAAuB4G,KAAO,SAASjyC,EAAMnB,GAC3C,GAAIusC,GAAKjvC,KAAKivC,GAAI7pC,EAAKpF,KAAKuH,SAC5B,IAAIzI,UAAUC,OAAS,EAAG,CACxB,GAAI0wC,GAAUmuB,GAAsBO,EAAY3hB,EAChD,KACEA,GAAyBvN,EACzB1mC,EAAkBvI,KAAM,SAASpC,EAAMgE,EAAG6G,GACxCm1D,GAAuBhgE,EAAKwH,GAAI6pC,GAChCprC,EAAK+F,KAAKhM,EAAMA,EAAKsK,SAAUtG,EAAG6G,KAEpC,QACAm1D,GAAuBnuB,EACvB+M,GAAyB2hB,OAG3B51D,GAAkBvI,KAAM,SAASpC,GAC/B,GAAI8xC,GAAa9xC,EAAKwH,GAAI6pC,IACzBS,EAAWttC,QAAUstC,EAAWttC,MAAQa,GAAGd,SAAS,QAAS,MAAO,eAAeK,GAAGqB,EAAMnB,IAGjG,OAAO1C,OAETkvC,GAAuBQ,WAAa,WAElC,IAAK,GAD4E0F,GAAUzsC,EAAO/K,EAAM8xC,EAApG0uB,EAAMp+D,KAAKivC,GAAIovB,IAAQV,GAAiBv4D,EAAKpF,KAAKuH,UAAW+tC,KACxD7sC,EAAI,EAAGC,EAAI1I,KAAKjB,OAAY2J,EAAJD,EAAOA,IAAK,CAC3C6sC,EAAU10C,KAAKw0C,KACf,KAAK,GAAIzsC,GAAQ3I,KAAKyI,GAAI7G,EAAI,EAAGC,EAAI8G,EAAM5J,OAAY8C,EAAJD,EAAOA,KACpDhE,EAAO+K,EAAM/G,MACf8tC,EAAa9xC,EAAKwH,GAAIg5D,GACtB5uB,GAAkB5xC,EAAMgE,EAAGwD,EAAIi5D,GAC7BhqD,KAAMq7B,EAAWr7B,KACjBu7B,KAAMF,EAAWE,KACjBp8B,MAAOk8B,EAAWl8B,MAAQk8B,EAAWC,SACrCA,SAAUD,EAAWC,YAGzByF,EAASx0C,KAAKhD,GAGlB,MAAOoxC,IAAcsG,EAAWlwC,EAAIi5D,IAmEtCp7D,GAAGmI,IAAIkzD,KAAO,WAEZ,QAASA,GAAKnvD,GACZA,EAAE2mC,KAAK,WACL,GAEqkByoB,GAFjkBpvD,EAAIlM,GAAG2H,OAAO5K,MACdg7C,EAASh7C,KAAKq6C,WAAavlC,EAAO8mC,EAAS57C,KAAKq6C,UAAYvlC,EAAM4yB,OAClEL,EAAsB,MAAdm3B,EAAqB5iB,EAAOvU,MAAQuU,EAAOvU,MAAM/lC,MAAMs6C,EAAQ6iB,GAAkB7iB,EAAO3V,SAAWu4B,EAAYj3B,EAA4B,MAAfm3B,EAAsB9iB,EAAOrU,WAAaqU,EAAOrU,WAAWjmC,MAAMs6C,EAAQ6iB,GAAkBx9D,EAAcy9D,EAAa1uB,EAAO7gC,EAAEomC,UAAU,SAASttC,KAAKo/B,EAAOuU,GAAS+iB,EAAY3uB,EAAKhnC,QAAQ4tB,OAAO,IAAK,WAAWsZ,KAAK,QAAS,QAAQrpC,MAAM,UAAWya,IAAIs9C,EAAW37D,GAAGysC,WAAWM,EAAKgH,QAAQnwC,MAAM,UAAWya,IAAGxe,SAAU+7D,EAAa57D,GAAGysC,WAAWM,EAAKyE,SAAS5tC,MAAM,UAAW,GAAIi4D,EAAcxxD,KAAK+C,IAAI0uD,EAAe,GAAKC,EACpjBhnD,EAAQmuB,GAAcyV,GAAS1P,EAAO/8B,EAAEomC,UAAU,WAAWttC,MAAO,IAAMg3D,GAAc/yB,EAAKljC,QAAQ4C,OAAO,QAAQskC,KAAK,QAAS,UACtIjtC,GAAGysC,WAAWxD,GACdyyB,GAAU/yD,OAAO,QACjB+yD,EAAU/yD,OAAO,OACjB,IAAoQ+d,GAAIqF,EAAIpF,EAAIqF,EAA5QiwC,EAAYP,EAAU/zD,OAAO,QAASu0D,EAAaN,EAAWj0D,OAAO,QAASurC,EAAOnG,EAAKplC,OAAO,QAAQurC,KAAK5O,GAAa63B,EAAYT,EAAU/zD,OAAO,QAASy0D,EAAaR,EAAWj0D,OAAO,QAASuL,EAAkB,QAAXmpD,GAA+B,SAAXA,EAAoB,GAAK,CAcjQ,IAbe,WAAXA,GAAkC,QAAXA,GACzBf,EAAgBtuB,GAActmB,EAAK,IAAKC,EAAK,IAAKoF,EAAK,KAAMC,EAAK,KAClEknB,EAAKjG,KAAK,KAAa,EAAP/5B,EAAW,MAAQ,SAAStP,MAAM,cAAe,UACjEo4D,EAAW/uB,KAAK,IAAK,IAAMl4B,EAAM,GAAK,IAAM7B,EAAOopD,EAAgB,MAAQvnD,EAAM,GAAK,IAAM7B,EAAOopD,KAEnGhB,EAAgBpuB,GAAcxmB,EAAK,IAAKC,EAAK,IAAKoF,EAAK,KAAMC,EAAK,KAClEknB,EAAKjG,KAAK,KAAM,SAASrpC,MAAM,cAAsB,EAAPsP,EAAW,MAAQ,SACjE8oD,EAAW/uB,KAAK,IAAK,IAAM/5B,EAAOopD,EAAgB,IAAMvnD,EAAM,GAAK,MAAQA,EAAM,GAAK,IAAM7B,EAAOopD,IAErGL,EAAUhvB,KAAKjhB,EAAI9Y,EAAO4oD,GAC1BK,EAAUlvB,KAAKtmB,EAAIzT,EAAO2oD,GAC1BK,EAAWjvB,KAAKlhB,EAAI,GAAGkhB,KAAKjhB,EAAI9Y,EAAO4oD,GACvCM,EAAWnvB,KAAKvmB,EAAI,GAAGumB,KAAKtmB,EAAIzT,EAAO2oD,GACnCljB,EAAO7S,UAAW,CACpB,GAAIzqC,GAAIs9C,EAAQ3xB,EAAK3rB,EAAEyqC,YAAc,CACrCiS,GAASY,EAAS,SAASz8C,GACzB,MAAOb,GAAEa,GAAK8qB,OAEP+wB,GAAOjS,UAChBiS,EAASY,EAETgjB,EAASh1D,KAAK20D,EAAe3iB,EAAQZ,EAEvC2jB,GAAU/0D,KAAK20D,EAAevjB,EAAQY,GACtCijB,EAAWj1D,KAAK20D,EAAe3iB,EAAQA,KAnC3C,GAAqK8iB,GAAjK5pD,EAAQ7R,GAAG6R,MAAMmyB,SAAUq4B,EAASE,GAA0BT,EAAgB,EAAGQ,EAAgB,EAAGP,EAAc,EAAGP,GAAmB,IAAMD,EAAa,IAwF/J,OAlDAF,GAAKxpD,MAAQ,SAASxW,GACpB,MAAKQ,WAAUC,QACf+V,EAAQxW,EACDggE,GAFuBxpD,GAIhCwpD,EAAKgB,OAAS,SAAShhE,GACrB,MAAKQ,WAAUC,QACfugE,EAAShhE,IAAKmhE,IAAqBnhE,EAAI,GAAKkhE,GACrClB,GAFuBgB,GAIhChB,EAAKj3B,MAAQ,WACX,MAAKvoC,WAAUC,QACf0/D,EAAiB3/D,UACVw/D,GAFuBG,GAIhCH,EAAKE,WAAa,SAASlgE,GACzB,MAAKQ,WAAUC,QACfy/D,EAAalgE,EACNggE,GAFuBE,GAIhCF,EAAK/2B,WAAa,SAASjpC,GACzB,MAAKQ,WAAUC,QACf2/D,EAAcpgE,EACPggE,GAFuBI,GAIhCJ,EAAKoB,SAAW,SAASphE,GACvB,GAAIuD,GAAI/C,UAAUC,MAClB,OAAK8C,IACLk9D,GAAiBzgE,EACjBihE,GAAiBzgE,UAAU+C,EAAI,GACxBy8D,GAHQS,GAKjBT,EAAKS,cAAgB,SAASzgE,GAC5B,MAAKQ,WAAUC,QACfggE,GAAiBzgE,EACVggE,GAFuBS,GAIhCT,EAAKiB,cAAgB,SAASjhE,GAC5B,MAAKQ,WAAUC,QACfwgE,GAAiBjhE,EACVggE,GAFuBiB,GAIhCjB,EAAKU,YAAc,SAAS1gE,GAC1B,MAAKQ,WAAUC,QACfigE,GAAe1gE,EACRggE,GAFuBU,GAIhCV,EAAKqB,cAAgB,WACnB,MAAO7gE,WAAUC,QAAUu/D,GAEtBA,EAET,IAAIkB,IAA2B,SAAUC,IACvC3zD,IAAK,EACL7M,MAAO,EACPw3D,OAAQ,EACR93D,KAAM,EAcRsE,IAAGmI,IAAIw0D,MAAQ,WAEb,QAASA,GAAMzwD,GACbA,EAAE2mC,KAAK,WACL,GAAI3mC,GAAIlM,GAAG2H,OAAO5K,MAAM6G,MAAM,iBAAkB,OAAOA,MAAM,8BAA+B,iBAAiBrE,GAAG,kBAAmBq9D,GAAYr9D,GAAG,mBAAoBq9D,GAClKC,EAAa3wD,EAAEomC,UAAU,eAAettC,MAAO,GACnD63D,GAAW92D,QAAQ4C,OAAO,QAAQskC,KAAK,QAAS,cAAcrpC,MAAM,aAAc,UAAUA,MAAM,SAAU,aAC5GsI,EAAEomC,UAAU,WAAWttC,MAAO,IAAKe,QAAQ4C,OAAO,QAAQskC,KAAK,QAAS,UAAUrpC,MAAM,SAAU,OAClG,IAAIk5D,GAAS5wD,EAAEomC,UAAU,WAAWttC,KAAK+3D,EAAS/+D,EAClD8+D,GAAO/oB,OAAOl0C,SACdi9D,EAAO/2D,QAAQ4C,OAAO,KAAKskC,KAAK,QAAS,SAAS/wC,GAChD,MAAO,UAAYA,IAClB0H,MAAM,SAAU,SAAS1H,GAC1B,MAAO8gE,IAAmB9gE,KACzByM,OAAO,QAAQskC,KAAK,IAAK,SAAS/wC,GACnC,MAAO,QAAQsH,KAAKtH,GAAK,GAAK,OAC7B+wC,KAAK,IAAK,SAAS/wC,GACpB,MAAO,QAAQsH,KAAKtH,GAAK,GAAK,OAC7B+wC,KAAK,QAAS,GAAGA,KAAK,SAAU,GAAGrpC,MAAM,aAAc,UAC1Dk5D,EAAOl5D,MAAM,UAAW+4D,EAAM9rB,QAAU,OAAS,KACjD,IAA8E97B,GAA1EkoD,EAAUj9D,GAAGysC,WAAWvgC,GAAIgxD,EAAmBl9D,GAAGysC,WAAWowB,EAC7DxhE,KACF0Z,EAAQmuB,GAAc7nC,GACtB6hE,EAAiBjwB,KAAK,IAAKl4B,EAAM,IAAIk4B,KAAK,QAASl4B,EAAM,GAAKA,EAAM,IACpEooD,EAAQF,IAEN5zD,IACF0L,EAAQmuB,GAAc75B,GACtB6zD,EAAiBjwB,KAAK,IAAKl4B,EAAM,IAAIk4B,KAAK,SAAUl4B,EAAM,GAAKA,EAAM,IACrEqoD,EAAQH,IAEVI,EAAOJ,KAyDX,QAASI,GAAOnxD,GACdA,EAAEomC,UAAU,WAAWrF,KAAK,YAAa,SAAS/wC,GAChD,MAAO,aAAeohE,GAAS,KAAK95D,KAAKtH,IAAM,IAAMqhE,GAAS,KAAK/5D,KAAKtH,IAAM,MAGlF,QAASihE,GAAQjxD,GACfA,EAAEvE,OAAO,WAAWslC,KAAK,IAAKqwB,EAAQ,IACtCpxD,EAAEomC,UAAU,2BAA2BrF,KAAK,QAASqwB,EAAQ,GAAKA,EAAQ,IAE5E,QAASF,GAAQlxD,GACfA,EAAEvE,OAAO,WAAWslC,KAAK,IAAKswB,EAAQ,IACtCrxD,EAAEomC,UAAU,2BAA2BrF,KAAK,SAAUswB,EAAQ,GAAKA,EAAQ,IAE7E,QAASX,KAwBP,QAASY,KACiB,IAApBx9D,GAAGb,MAAMs+D,UACNC,IACH1wC,EAAS,KACT2oB,EAAO,IAAM2nB,EAAQ,GACrB3nB,EAAO,IAAM4nB,EAAQ,GACrBG,EAAW,GAEb39D,KAGJ,QAAS49D,KACiB,IAApB39D,GAAGb,MAAMs+D,SAA6B,GAAZC,IAC5B/nB,EAAO,IAAM2nB,EAAQ,GACrB3nB,EAAO,IAAM4nB,EAAQ,GACrBG,EAAW,EACX39D,KAGJ,QAAS69D,KACP,GAAIt1D,GAAQtI,GAAGs0C,MAAMp2C,GAAS82C,GAAQ,CAClCngC,KACFvM,EAAM,IAAMuM,EAAO,GACnBvM,EAAM,IAAMuM,EAAO,IAEhB6oD,IACC19D,GAAGb,MAAM0+D,QACN7wC,IAAQA,IAAYswC,EAAQ,GAAKA,EAAQ,IAAM,GAAIC,EAAQ,GAAKA,EAAQ,IAAM,IACnF5nB,EAAO,GAAK2nB,IAAUh1D,EAAM,GAAK0kB,EAAO,KACxC2oB,EAAO,GAAK4nB,IAAUj1D,EAAM,GAAK0kB,EAAO,MACnCA,EAAS,MAEd8wC,GAAaC,EAAMz1D,EAAOjN,EAAG,KAC/B8hE,EAAQjxD,GACR8oC,GAAQ,GAENgpB,GAAaD,EAAMz1D,EAAOe,EAAG,KAC/B+zD,EAAQlxD,GACR8oC,GAAQ,GAENA,IACFqoB,EAAOnxD,GACP+xD,GACEr9D,KAAM,QACNy1D,KAAMqH,EAAW,OAAS,YAIhC,QAASK,GAAMz1D,EAAOuJ,EAAOlT,GAC3B,GAAoJ2O,GAAKF,EAArJ2H,EAAQmuB,GAAcrxB,GAAQmqB,EAAKjnB,EAAM,GAAIknB,EAAKlnB,EAAM,GAAInM,EAAW+sC,EAAOh3C,GAAIg2B,EAASh2B,EAAI4+D,EAAUD,EAASz/D,EAAO82B,EAAO,GAAKA,EAAO,EAiBhJ,OAhBI+oC,KACF1hC,GAAMpzB,EACNqzB,GAAMp+B,EAAO+K,GAEf0E,GAAO3O,EAAIu/D,EAASC,GAAU9zD,KAAK+C,IAAI4uB,EAAI3xB,KAAKiD,IAAI2uB,EAAI3zB,EAAM3J,KAAO2J,EAAM3J,GACvE++D,EACFtwD,GAAOE,GAAO1E,GAAY/K,GAEtBmvB,IAAQpkB,EAAWyB,KAAK+C,IAAI4uB,EAAI3xB,KAAKiD,IAAI2uB,EAAI,EAAIjP,EAAOruB,GAAK2O,KAClDA,EAAX1E,GACFwE,EAAME,EACNA,EAAM1E,GAENwE,EAAMxE,GAGN+rB,EAAO,IAAMrnB,GAAOqnB,EAAO,IAAMvnB,GAC/BzO,EAAGy/D,EAAgB,KAAWC,EAAgB,KAClD1pC,EAAO,GAAKrnB,EACZqnB,EAAO,GAAKvnB,GACL,GAJT,OAOF,QAASkxD,KACPV,IACA1xD,EAAEtI,MAAM,iBAAkB,OAAO0uC,UAAU,WAAW1uC,MAAM,UAAW+4D,EAAM9rB,QAAU,OAAS,MAChG7wC,GAAG2H,OAAO,QAAQ/D,MAAM,SAAU,MAClC8D,EAAEnI,GAAG,kBAAmB,MAAMA,GAAG,gBAAiB,MAAMA,GAAG,kBAAmB,MAAMA,GAAG,iBAAkB,MAAMA,GAAG,gBAAiB,MAAMA,GAAG,cAAe,MAC3Jk2C,IACAwoB,GACEr9D,KAAM,aAvGV,GAAyUosB,GAAmCnY,EAAxW3W,EAASnB,KAAMwhE,EAAcv+D,GAAG2H,OAAO3H,GAAGb,MAAMjB,QAAS+/D,EAAS9+D,EAAMoB,GAAGrC,EAAQrC,WAAYqQ,EAAIlM,GAAG2H,OAAOzJ,GAASsgE,EAAWD,EAAYvqB,QAAS8pB,GAAa,UAAUt6D,KAAKg7D,IAAanjE,EAAG2iE,GAAa,UAAUx6D,KAAKg7D,IAAan1D,EAAGq0D,EAAWa,EAAYzrB,QAAQ,UAAW2C,EAAcluC,EAAsBrJ,GAAiBy3C,EAAS31C,GAAGs0C,MAAMp2C,GAC/VwJ,EAAI1H,GAAG2H,OAAO5M,EAAUmD,IAASqB,GAAG,gBAAiBi+D,GAASj+D,GAAG,cAAeo+D,EAOpF,IANI39D,GAAGb,MAAM+I,eACXR,EAAEnI,GAAG,kBAAmBq+D,GAAWr+D,GAAG,iBAAkB++D,GAExD52D,EAAEnI,GAAG,kBAAmBq+D,GAAWr+D,GAAG,gBAAiB++D,GAEzDpyD,EAAE4/B,YAAYwG,UAAU,KAAKxG,YACzB4xB,EACF/nB,EAAO,GAAK2nB,EAAQ,GAAK3nB,EAAO,GAChCA,EAAO,GAAK4nB,EAAQ,GAAK5nB,EAAO,OAC3B,IAAI6oB,EAAU,CACnB,GAAIC,IAAM,KAAKj7D,KAAKg7D,GAAWE,GAAM,KAAKl7D,KAAKg7D,EAC/C3pD,IAAWyoD,EAAQ,EAAImB,GAAM9oB,EAAO,GAAI4nB,EAAQ,EAAImB,GAAM/oB,EAAO,IACjEA,EAAO,GAAK2nB,EAAQmB,GACpB9oB,EAAO,GAAK4nB,EAAQmB,OACX1+D,IAAGb,MAAM0+D,SAAQ7wC,EAAS2oB,EAAOr4C,QAC5C4O,GAAEtI,MAAM,iBAAkB,QAAQ0uC,UAAU,WAAW1uC,MAAM,UAAW,MACxE5D,GAAG2H,OAAO,QAAQ/D,MAAM,SAAU26D,EAAY36D,MAAM,WACpDq6D,GACEr9D,KAAM,eAERg9D,IA3HF,GAAoIS,GAAeD,EAA/Ij/D,EAAQmB,EAAiBq8D,EAAO,aAAc,QAAS,YAAathE,EAAI,KAAMgO,EAAI,KAAMi0D,GAAY,EAAG,GAAKC,GAAY,EAAG,GAAmCY,GAAS,EAAMD,GAAS,EAAMnB,EAAU4B,GAAoB,EAoR9N,OAnPAhC,GAAMx9D,MAAQ,SAAS+M,GACrBA,EAAE2mC,KAAK,WACL,GAAIorB,GAAS9+D,EAAMoB,GAAGxD,KAAMlB,WAAY+iE,GACtCvjE,EAAGiiE,EACHj0D,EAAGk0D,EACH5+D,EAAG0/D,EACH74D,EAAG44D,GACFS,EAAU9hE,KAAKq6C,WAAawnB,CAC/B7hE,MAAKq6C,UAAYwnB,EACbrlB,GACFv5C,GAAG2H,OAAO5K,MAAM0vC,aAAaoG,KAAK,cAAe,WAC/CwrB,EAAgBQ,EAAQlgE,EACxBy/D,EAAgBS,EAAQr5D,EACxB83D,EAAUuB,EAAQxjE,EAClBkiE,EAAUsB,EAAQx1D,EAClB40D,GACEr9D,KAAM,iBAEPurC,MAAM,cAAe,WACtB,GAAIpG,GAAKjM,GAAoBwjC,EAASsB,EAAQvjE,GAAIyjE,EAAKhlC,GAAoByjC,EAASqB,EAAQv1D,EAE5F,OADAg1D,GAAgBD,EAAgB,KACzB,SAASntD,GACdqsD,EAAUsB,EAAQvjE,EAAI0qC,EAAG90B,GACzBssD,EAAUqB,EAAQv1D,EAAIy1D,EAAG7tD,GACzBgtD,GACEr9D,KAAM,QACNy1D,KAAM,cAGTxjB,KAAK,YAAa,WACnBwrB,EAAgBO,EAAQjgE,EACxBy/D,EAAgBQ,EAAQp5D,EACxBy4D,GACEr9D,KAAM,QACNy1D,KAAM,WAER4H,GACEr9D,KAAM,gBAIVq9D,GACEr9D,KAAM,eAERq9D,GACEr9D,KAAM,QACNy1D,KAAM,WAER4H,GACEr9D,KAAM,iBA8Hd+7D,EAAMthE,EAAI,SAASgE,GACjB,MAAKxD,WAAUC,QACfT,EAAIgE,EACJ09D,EAAU4B,IAAqBtjE,GAAK,GAAKgO,GAClCszD,GAHuBthE,GAKhCshE,EAAMtzD,EAAI,SAAShK,GACjB,MAAKxD,WAAUC,QACfuN,EAAIhK,EACJ09D,EAAU4B,IAAqBtjE,GAAK,GAAKgO,GAClCszD,GAHuBtzD,GAKhCszD,EAAM74B,MAAQ,SAASzkC,GACrB,MAAKxD,WAAUC,QACXT,GAAKgO,GAAG80D,IAAW9+D,EAAE,GAAI6+D,IAAW7+D,EAAE,IAAahE,EAAG8iE,IAAW9+D,EAAYgK,IAAG60D,IAAW7+D,GACxFs9D,GAFuBthE,GAAKgO,GAAM80D,EAAQD,GAAW7iE,EAAI8iE,EAAS90D,EAAI60D,EAAS,MAIxFvB,EAAMhoC,OAAS,SAASt1B,GACtB,GAAI0f,GAAI2H,EAAI7H,EAAI8H,EAAI1V,CACpB,OAAKpV,WAAUC,QAqBXT,IACF0jB,EAAK1f,EAAE,GAAIqnB,EAAKrnB,EAAE,GACdgK,IAAG0V,EAAKA,EAAG,GAAI2H,EAAKA,EAAG,IAC3B23C,GAAkBt/C,EAAI2H,GAClBrrB,EAAE0kB,SAAQhB,EAAK1jB,EAAE0jB,GAAK2H,EAAKrrB,EAAEqrB,IACxB3H,EAAL2H,IAASzV,EAAI8N,EAAIA,EAAK2H,EAAIA,EAAKzV,IAC/B8N,GAAMu+C,EAAQ,IAAM52C,GAAM42C,EAAQ,MAAIA,GAAYv+C,EAAI2H,KAExDrd,IACFwV,EAAKxf,EAAE,GAAIsnB,EAAKtnB,EAAE,GACdhE,IAAGwjB,EAAKA,EAAG,GAAI8H,EAAKA,EAAG,IAC3By3C,GAAkBv/C,EAAI8H,GAClBtd,EAAE0W,SAAQlB,EAAKxV,EAAEwV,GAAK8H,EAAKtd,EAAEsd,IACxB9H,EAAL8H,IAAS1V,EAAI4N,EAAIA,EAAK8H,EAAIA,EAAK1V,IAC/B4N,GAAM0+C,EAAQ,IAAM52C,GAAM42C,EAAQ,MAAIA,GAAY1+C,EAAI8H,KAErDg2C,IApCDthE,IACEgjE,GACFt/C,EAAKs/C,EAAc,GAAI33C,EAAK23C,EAAc,KAE1Ct/C,EAAKu+C,EAAQ,GAAI52C,EAAK42C,EAAQ,GAC1BjiE,EAAE0kB,SAAQhB,EAAK1jB,EAAE0kB,OAAOhB,GAAK2H,EAAKrrB,EAAE0kB,OAAO2G,IACtC3H,EAAL2H,IAASzV,EAAI8N,EAAIA,EAAK2H,EAAIA,EAAKzV,KAGnC5H,IACE+0D,GACFv/C,EAAKu/C,EAAc,GAAIz3C,EAAKy3C,EAAc,KAE1Cv/C,EAAK0+C,EAAQ,GAAI52C,EAAK42C,EAAQ,GAC1Bl0D,EAAE0W,SAAQlB,EAAKxV,EAAE0W,OAAOlB,GAAK8H,EAAKtd,EAAE0W,OAAO4G,IACtC9H,EAAL8H,IAAS1V,EAAI4N,EAAIA,EAAK8H,EAAIA,EAAK1V,KAGhC5V,GAAKgO,IAAQ0V,EAAIF,IAAQ6H,EAAIC,IAAStrB,GAAM0jB,EAAI2H,GAAOrd,IAAOwV,EAAI8H,KAoB7Eg2C,EAAMoC,MAAQ,WAKZ,MAJKpC,GAAM9rB,UACTysB,GAAY,EAAG,GAAKC,GAAY,EAAG,GACnCc,EAAgBD,EAAgB,MAE3BzB,GAETA,EAAM9rB,MAAQ,WACZ,QAASx1C,GAAKiiE,EAAQ,IAAMA,EAAQ,MAAQj0D,GAAKk0D,EAAQ,IAAMA,EAAQ,IAElEv9D,GAAGiQ,OAAO0sD,EAAOx9D,EAAO,MAEjC,IAAI69D,KACFp+D,EAAG,YACHwB,EAAG,YACHD,EAAG,YACHuH,EAAG,YACHs3D,GAAI,cACJC,GAAI,cACJC,GAAI,cACJC,GAAI,eAEFR,KAA0B,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,OAAU,IAAK,MAAS,IAAK,SAC7FppD,GAAiB+D,GAAQ/L,OAAS85C,GAAeD,WACjDgY,GAAoB7pD,GAAeJ,IACnCkqD,GAAoBD,GAAkB,wBAC1C7pD,IAAe+pD,IAAMxuD,KAAKnU,UAAUywC,cAAgB,GAAIt8B,MAAK,4BAA8Bq8B,GAA0BkyB,GAIrHlyB,GAAwBt3B,MAAQ,SAASJ,GACvC,GAAIf,GAAO,GAAI5D,MAAK2E,EACpB,OAAOla,OAAMmZ,GAAQ,KAAOA,GAE9By4B,GAAwB9/B,SAAWgyD,GAAkBhyD,SACrDiM,GAAQimD,OAAShrD,GAAiB,SAASG,GACzC,MAAO,IAAII,IAAiC,IAAzBzK,KAAK+K,MAAMV,EAAO,OACpC,SAASA,EAAMG,GAChBH,EAAKgyC,QAAQhyC,EAAK+wC,UAAiC,IAArBp7C,KAAK+K,MAAMP,KACxC,SAASH,GACV,MAAOA,GAAKgF,eAEdJ,GAAQkmD,QAAUlmD,GAAQimD,OAAOxqD,MACjCuE,GAAQkmD,QAAQrqD,IAAMmE,GAAQimD,OAAOpqD,IAAIJ,MACzCuE,GAAQmmD,OAASlrD,GAAiB,SAASG,GACzC,MAAO,IAAII,IAAiC,IAAzBzK,KAAK+K,MAAMV,EAAO,OACpC,SAASA,EAAMG,GAChBH,EAAKgyC,QAAQhyC,EAAK+wC,UAAiC,IAArBp7C,KAAK+K,MAAMP,KACxC,SAASH,GACV,MAAOA,GAAK+E,eAEdH,GAAQomD,QAAUpmD,GAAQmmD,OAAO1qD,MACjCuE,GAAQomD,QAAQvqD,IAAMmE,GAAQmmD,OAAOtqD,IAAIJ,MACzCuE,GAAQqmD,KAAOprD,GAAiB,SAASG,GACvC,GAAIkrD,GAAWlrD,EAAKwG,oBAAsB,EAC1C,OAAO,IAAIpG,IAA0D,MAAjDzK,KAAK+K,MAAMV,EAAO,KAAOkrD,GAAYA,KACxD,SAASlrD,EAAMG,GAChBH,EAAKgyC,QAAQhyC,EAAK+wC,UAAiC,KAArBp7C,KAAK+K,MAAMP,KACxC,SAASH,GACV,MAAOA,GAAK0E,aAEdE,GAAQumD,MAAQvmD,GAAQqmD,KAAK5qD,MAC7BuE,GAAQumD,MAAM1qD,IAAMmE,GAAQqmD,KAAKxqD,IAAIJ,MACrCuE,GAAQwmD,MAAQvrD,GAAiB,SAASG,GAGxC,MAFAA,GAAO4E,GAAQqtC,IAAIjyC,GACnBA,EAAKixC,QAAQ,GACNjxC,GACN,SAASA,EAAMG,GAChBH,EAAK4xC,SAAS5xC,EAAKsE,WAAanE,IAC/B,SAASH,GACV,MAAOA,GAAKsE,aAEdM,GAAQd,OAASc,GAAQwmD,MAAM/qD,MAC/BuE,GAAQd,OAAOrD,IAAMmE,GAAQwmD,MAAM3qD,IAAIJ,KAsDvC,IAAIy4B,KAAuB,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,SACnIuyB,KAAgCzmD,GAAQimD,OAAQ,IAAOjmD,GAAQimD,OAAQ,IAAOjmD,GAAQimD,OAAQ,KAAQjmD,GAAQimD,OAAQ,KAAQjmD,GAAQmmD,OAAQ,IAAOnmD,GAAQmmD,OAAQ,IAAOnmD,GAAQmmD,OAAQ,KAAQnmD,GAAQmmD,OAAQ,KAAQnmD,GAAQqmD,KAAM,IAAOrmD,GAAQqmD,KAAM,IAAOrmD,GAAQqmD,KAAM,IAAOrmD,GAAQqmD,KAAM,KAAQrmD,GAAQqtC,IAAK,IAAOrtC,GAAQqtC,IAAK,IAAOrtC,GAAQutC,KAAM,IAAOvtC,GAAQwmD,MAAO,IAAOxmD,GAAQwmD,MAAO,IAAOxmD,GAAQm0B,KAAM,IACxauyB,GAA2BzqD,GAAeoD,QAAU,MAAO,SAASzc,GACtE,MAAOA,GAAEsd,qBACJ,MAAO,SAAStd,GACrB,MAAOA,GAAEwd,gBACJ,QAAS,SAASxd,GACvB,MAAOA,GAAEud,gBACJ,QAAS,SAASvd,GACvB,MAAOA,GAAEkd,cACJ,QAAS,SAASld,GACvB,MAAOA,GAAEqa,UAA2B,GAAfra,EAAEid,aAClB,QAAS,SAASjd,GACvB,MAAsB,IAAfA,EAAEid,aACJ,KAAM,SAASjd,GACpB,MAAOA,GAAE8c,cACJ,KAAMgH,MACT0tB,IACF34B,MAAO,SAASgM,EAAOkiB,EAAMzuB,GAC3B,MAAOxU,IAAG+U,MAAM1K,KAAKmH,KAAKuP,EAAQvM,GAAQA,GAAOyuB,EAAMzuB,GAAMxR,IAAI2qC,KAEnEv4B,MAAOpX,EACPwT,KAAMxT,EAER+hE,IAA0BtyB,KAAOn0B,GAAQm0B,KACzCn0B,GAAQzH,MAAQ,WACd,MAAOw7B,IAAcrtC,GAAG6R,MAAMmyB,SAAU+7B,GAA2BC,IAErE,IAAIC,IAA0BF,GAA0B/8D,IAAI,SAASyC,GACnE,OAASA,EAAE,GAAG0P,IAAK1P,EAAE,MAEnBy6D,GAAyBd,GAAkBzmD,QAAU,MAAO,SAASzc,GACvE,MAAOA,GAAEmpD,wBACJ,MAAO,SAASnpD,GACrB,MAAOA,GAAEspD,mBACJ,QAAS,SAAStpD,GACvB,MAAOA,GAAEopD,mBACJ,QAAS,SAASppD,GACvB,MAAOA,GAAEkpD,iBACJ,QAAS,SAASlpD,GACvB,MAAOA,GAAEgpD,aAAiC,GAAlBhpD,EAAE+oD,gBACrB,QAAS,SAAS/oD,GACvB,MAAyB,IAAlBA,EAAE+oD,gBACJ,KAAM,SAAS/oD,GACpB,MAAOA,GAAEqpD,iBACJ,KAAMvlC,KACbigD,IAAwBxyB,KAAOn0B,GAAQm0B,KAAKt4B,IAC5CmE,GAAQzH,MAAMsD,IAAM,WAClB,MAAOk4B,IAAcrtC,GAAG6R,MAAMmyB,SAAUi8B,GAAyBC,KAEnElgE,GAAGkzC,KAAOhlC,GAAW,SAASQ,GAC5B,MAAOA,GAAQyB,eAEjBnQ,GAAGmgE,KAAO,SAAS/xD,EAAK7I,GACtB,MAAO+I,IAAOF,EAAK,mBAAoB2/B,GAASxoC,IAKlDvF,GAAGmzC,KAAO,SAAS/kC,EAAK7I,GACtB,MAAO+I,IAAOF,EAAK,YAAa6/B,GAAS1oC,IAO3CvF,GAAG0yC,IAAMxkC,GAAW,SAASQ,GAC3B,MAAOA,GAAQ0xD,cAEK,kBAAXC,SAAyBA,OAAOC,IAAKD,OAAOrgE,IAAgC,gBAAXugE,SAAuBA,OAAOC,UAASD,OAAOC,QAAUxgE,IACpIjD,KAAKiD,GAAKA"} \ No newline at end of file diff --git a/static/maps/libs/jquery/jquery.js.map b/static/maps/libs/jquery/jquery.js.map index 2dbf88a72c2d..9f3af042afa6 100644 --- a/static/maps/libs/jquery/jquery.js.map +++ b/static/maps/libs/jquery/jquery.js.map @@ -1 +1 @@ -{"version":3,"file":"jquery.js","sources":["../../../src/libs/jquery/jquery.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","isArraylike","obj","length","type","jQuery","isWindow","nodeType","winnow","elements","qualifier","not","isFunction","grep","elem","i","call","risSimple","test","filter","inArray","sibling","cur","dir","createOptions","options","object","optionsCache","each","match","rnotwhite","_","flag","detach","addEventListener","removeEventListener","completed","detachEvent","event","readyState","ready","dataAttr","key","data","undefined","name","replace","rmultiDash","toLowerCase","getAttribute","rbrace","parseJSON","e","isEmptyDataObject","isEmptyObject","internalData","pvt","acceptData","ret","thisCache","internalKey","expando","isNode","cache","id","deletedIds","pop","guid","toJSON","noop","extend","camelCase","internalRemoveData","isArray","concat","map","split","cleanData","support","deleteExpando","returnTrue","returnFalse","safeActiveElement","activeElement","err","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","createElement","getAll","context","tag","elems","found","getElementsByTagName","strundefined","querySelectorAll","childNodes","nodeName","push","merge","fixDefaultChecked","rcheckableType","defaultChecked","checked","manipulationTarget","content","firstChild","appendChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","exec","removeAttribute","setGlobalEval","refElements","_data","cloneCopyEvent","src","dest","hasData","l","oldData","curData","events","handle","add","fixCloneNodeIssues","noCloneEvent","removeEvent","text","parentNode","outerHTML","html5Clone","innerHTML","trim","value","defaultSelected","selected","defaultValue","actualDisplay","doc","style","appendTo","body","display","getDefaultComputedStyle","css","defaultDisplay","elemdisplay","iframe","documentElement","contentWindow","contentDocument","write","close","addGetHookIf","conditionFn","hookFn","get","condition","apply","arguments","vendorPropName","capName","charAt","toUpperCase","slice","origName","cssPrefixes","showHide","show","hidden","values","index","isHidden","setPositiveNumber","subtract","matches","rnumsplit","Math","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","Tween","prop","end","easing","prototype","init","createFxNow","setTimeout","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","width","createTween","animation","tween","collection","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","checkDisplay","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","done","hide","_removeData","start","propFilter","specialEasing","cssHooks","expand","Animation","properties","result","stopped","animationPrefilters","deferred","Deferred","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","fx","timer","progress","complete","fail","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","error","buildParams","prefix","traditional","v","rbracket","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","getWindow","defaultView","parentWindow","indexOf","class2type","toString","hasOwn","hasOwnProperty","version","selector","fn","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","constructor","toArray","num","pushStack","prevObject","callback","args","first","eq","last","len","j","sort","splice","copyIsArray","copy","clone","isPlainObject","random","isReady","msg","Array","isNumeric","ownLast","globalEval","execScript","string","makeArray","arr","results","Object","second","invert","callbackInverse","callbackExpect","arg","proxy","Date","Sizzle","seed","m","groups","old","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","contains","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","setAttribute","toSelector","rsibling","testContext","join","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","removeChild","addHandle","handler","attrHandle","siblingCheck","a","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","outerCache","newCache","dirruns","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","compilerCache","sortOrder","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","els","node","hasCompare","parent","top","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","has","innerText","lang","elemLang","hash","location","root","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","n","r","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","stack","once","stopOnFalse","disable","remove","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","source","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","original","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","suffix","expanded","parts","unit","propHooks","eased","step","linear","p","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","JSON","parse","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","abort","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serialize","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","define","amd","_jQuery","_$","$","noConflict"],"mappings":"CAcC,SAAUA,EAAQC,GAEK,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAQhDD,OAAOC,QAAUH,EAAOI,SACvBH,EAASD,GAAQ,GACjB,SAAUK,GACT,IAAMA,EAAED,SACP,KAAM,IAAIE,OAAO,2CAElB,OAAOL,GAASI,IAGlBJ,EAASD,IAIS,mBAAXO,QAAyBA,OAASC,KAAM,SAAUD,EAAQE,GAqhBnE,QAASC,GAAaC,GACrB,GAAIC,GAASD,EAAIC,OAChBC,EAAOC,GAAOD,KAAMF,EAErB,OAAc,aAATE,GAAuBC,GAAOC,SAAUJ,IACrC,EAGc,IAAjBA,EAAIK,UAAkBJ,GACnB,EAGQ,UAATC,GAA+B,IAAXD,GACR,gBAAXA,IAAuBA,EAAS,GAAOA,EAAS,IAAOD,GAmiEhE,QAASM,GAAQC,EAAUC,EAAWC,GACrC,GAAKN,GAAOO,WAAYF,GACvB,MAAOL,IAAOQ,KAAMJ,EAAU,SAAUK,EAAMC,GAE7C,QAASL,EAAUM,KAAMF,EAAMC,EAAGD,KAAWH,GAK/C,IAAKD,EAAUH,SACd,MAAOF,IAAOQ,KAAMJ,EAAU,SAAUK,GACvC,MAASA,KAASJ,IAAgBC,GAKpC,IAA0B,gBAAdD,GAAyB,CACpC,GAAKO,GAAUC,KAAMR,GACpB,MAAOL,IAAOc,OAAQT,EAAWD,EAAUE,EAG5CD,GAAYL,GAAOc,OAAQT,EAAWD,GAGvC,MAAOJ,IAAOQ,KAAMJ,EAAU,SAAUK,GACvC,MAAST,IAAOe,QAASN,EAAMJ,IAAe,IAAQC,IAiTxD,QAASU,GAASC,EAAKC,GACtB,EACCD,GAAMA,EAAKC,SACFD,GAAwB,IAAjBA,EAAIf,SAErB,OAAOe,GA8ER,QAASE,GAAeC,GACvB,GAAIC,GAASC,GAAcF,KAI3B,OAHApB,IAAOuB,KAAMH,EAAQI,MAAOC,QAAmB,SAAUC,EAAGC,GAC3DN,EAAQM,IAAS,IAEXN,EA2YR,QAASO,KACHtC,GAASuC,kBACbvC,GAASwC,oBAAqB,mBAAoBC,GAAW,GAC7DtC,EAAOqC,oBAAqB,OAAQC,GAAW,KAG/CzC,GAAS0C,YAAa,qBAAsBD,GAC5CtC,EAAOuC,YAAa,SAAUD,IAOhC,QAASA,MAEHzC,GAASuC,kBAAmC,SAAfI,MAAMlC,MAA2C,aAAxBT,GAAS4C,cACnEN,IACA5B,GAAOmC,SA+JT,QAASC,GAAU3B,EAAM4B,EAAKC,GAG7B,GAAcC,SAATD,GAAwC,IAAlB7B,EAAKP,SAAiB,CAEhD,GAAIsC,GAAO,QAAUH,EAAII,QAASC,GAAY,OAAQC,aAItD,IAFAL,EAAO7B,EAAKmC,aAAcJ,GAEL,gBAATF,GAAoB,CAC/B,IACCA,EAAgB,SAATA,GAAkB,EACf,UAATA,GAAmB,EACV,SAATA,EAAkB,MAEjBA,EAAO,KAAOA,GAAQA,EACvBO,GAAOhC,KAAMyB,GAAStC,GAAO8C,UAAWR,GACxCA,EACA,MAAOS,IAGT/C,GAAOsC,KAAM7B,EAAM4B,EAAKC,OAGxBA,GAAOC,OAIT,MAAOD,GAIR,QAASU,GAAmBnD,GAC3B,GAAI2C,EACJ,KAAMA,IAAQ3C,GAGb,IAAc,SAAT2C,IAAmBxC,GAAOiD,cAAepD,EAAI2C,MAGpC,WAATA,EACJ,OAAO,CAIT,QAAO,EAGR,QAASU,GAAczC,EAAM+B,EAAMF,EAAMa,GACxC,GAAMnD,GAAOoD,WAAY3C,GAAzB,CAIA,GAAI4C,GAAKC,EACRC,EAAcvD,GAAOwD,QAIrBC,EAAShD,EAAKP,SAIdwD,EAAQD,EAASzD,GAAO0D,MAAQjD,EAIhCkD,EAAKF,EAAShD,EAAM8C,GAAgB9C,EAAM8C,IAAiBA,CAI5D,IAAOI,GAAOD,EAAMC,KAASR,GAAQO,EAAMC,GAAIrB,OAAmBC,SAATD,GAAsC,gBAATE,GAgEtF,MA5DMmB,KAIJA,EADIF,EACChD,EAAM8C,GAAgBK,EAAWC,OAAS7D,GAAO8D,OAEjDP,GAIDG,EAAOC,KAGZD,EAAOC,GAAOF,MAAgBM,OAAQ/D,GAAOgE,QAKzB,gBAATxB,IAAqC,kBAATA,MAClCW,EACJO,EAAOC,GAAO3D,GAAOiE,OAAQP,EAAOC,GAAMnB,GAE1CkB,EAAOC,GAAKrB,KAAOtC,GAAOiE,OAAQP,EAAOC,GAAKrB,KAAME,IAItDc,EAAYI,EAAOC,GAKbR,IACCG,EAAUhB,OACfgB,EAAUhB,SAGXgB,EAAYA,EAAUhB,MAGTC,SAATD,IACJgB,EAAWtD,GAAOkE,UAAW1B,IAAWF,GAKpB,gBAATE,IAGXa,EAAMC,EAAWd,GAGL,MAAPa,IAGJA,EAAMC,EAAWtD,GAAOkE,UAAW1B,MAGpCa,EAAMC,EAGAD,GAGR,QAASc,GAAoB1D,EAAM+B,EAAMW,GACxC,GAAMnD,GAAOoD,WAAY3C,GAAzB,CAIA,GAAI6C,GAAW5C,EACd+C,EAAShD,EAAKP,SAGdwD,EAAQD,EAASzD,GAAO0D,MAAQjD,EAChCkD,EAAKF,EAAShD,EAAMT,GAAOwD,SAAYxD,GAAOwD,OAI/C,IAAME,EAAOC,GAAb,CAIA,GAAKnB,IAEJc,EAAYH,EAAMO,EAAOC,GAAOD,EAAOC,GAAKrB,MAE3B,CAGVtC,GAAOoE,QAAS5B,GAsBrBA,EAAOA,EAAK6B,OAAQrE,GAAOsE,IAAK9B,EAAMxC,GAAOkE,YAnBxC1B,IAAQc,GACZd,GAASA,IAITA,EAAOxC,GAAOkE,UAAW1B,GAExBA,EADIA,IAAQc,IACHd,GAEFA,EAAK+B,MAAM,MAarB7D,EAAI8B,EAAK1C,MACT,MAAQY,WACA4C,GAAWd,EAAK9B,GAKxB,IAAKyC,GAAOH,EAAkBM,IAActD,GAAOiD,cAAcK,GAChE,QAMGH,UACEO,GAAOC,GAAKrB,KAIbU,EAAmBU,EAAOC,QAM5BF,EACJzD,GAAOwE,WAAa/D,IAAQ,GAIjBgE,GAAQC,eAAiBhB,GAASA,EAAMjE,aAE5CiE,GAAOC,GAIdD,EAAOC,GAAO,QA+YhB,QAASgB,KACR,OAAO,EAGR,QAASC,KACR,OAAO,EAGR,QAASC,KACR,IACC,MAAOvF,IAASwF,cACf,MAAQC,KA8+BX,QAASC,GAAoB1F,GAC5B,GAAI2F,GAAOC,GAAUX,MAAO,KAC3BY,EAAW7F,EAAS8F,wBAErB,IAAKD,EAASE,cACb,KAAQJ,EAAKnF,QACZqF,EAASE,cACRJ,EAAKpB,MAIR,OAAOsB,GAyCR,QAASG,GAAQC,EAASC,GACzB,GAAIC,GAAOhF,EACVC,EAAI,EACJgF,QAAeH,GAAQI,uBAAyBC,GAAeL,EAAQI,qBAAsBH,GAAO,WAC5FD,GAAQM,mBAAqBD,GAAeL,EAAQM,iBAAkBL,GAAO,KACpFjD,MAEF,KAAMmD,EACL,IAAMA,KAAYD,EAAQF,EAAQO,YAAcP,EAA8B,OAApB9E,EAAOgF,EAAM/E,IAAaA,KAC7E8E,GAAOxF,GAAO+F,SAAUtF,EAAM+E,GACnCE,EAAMM,KAAMvF,GAEZT,GAAOiG,MAAOP,EAAOJ,EAAQ7E,EAAM+E,GAKtC,OAAejD,UAARiD,GAAqBA,GAAOxF,GAAO+F,SAAUR,EAASC,GAC5DxF,GAAOiG,OAASV,GAAWG,GAC3BA,EAIF,QAASQ,GAAmBzF,GACtB0F,GAAetF,KAAMJ,EAAKV,QAC9BU,EAAK2F,eAAiB3F,EAAK4F,SAM7B,QAASC,GAAoB7F,EAAM8F,GAClC,MAAOvG,IAAO+F,SAAUtF,EAAM,UAC7BT,GAAO+F,SAA+B,KAArBQ,EAAQrG,SAAkBqG,EAAUA,EAAQC,WAAY,MAEzE/F,EAAKkF,qBAAqB,SAAS,IAClClF,EAAKgG,YAAahG,EAAKiG,cAAcrB,cAAc,UACpD5E,EAIF,QAASkG,GAAelG,GAEvB,MADAA,GAAKV,MAA6C,OAArCC,GAAO4G,KAAKC,KAAMpG,EAAM,SAAqB,IAAMA,EAAKV,KAC9DU,EAER,QAASqG,GAAerG,GACvB,GAAIe,GAAQuF,GAAkBC,KAAMvG,EAAKV,KAMzC,OALKyB,GACJf,EAAKV,KAAOyB,EAAM,GAElBf,EAAKwG,gBAAgB,QAEfxG,EAIR,QAASyG,GAAezB,EAAO0B,GAG9B,IAFA,GAAI1G,GACHC,EAAI,EACwB,OAApBD,EAAOgF,EAAM/E,IAAaA,IAClCV,GAAOoH,MAAO3G,EAAM,cAAe0G,GAAenH,GAAOoH,MAAOD,EAAYzG,GAAI,eAIlF,QAAS2G,GAAgBC,EAAKC,GAE7B,GAAuB,IAAlBA,EAAKrH,UAAmBF,GAAOwH,QAASF,GAA7C,CAIA,GAAIvH,GAAMW,EAAG+G,EACZC,EAAU1H,GAAOoH,MAAOE,GACxBK,EAAU3H,GAAOoH,MAAOG,EAAMG,GAC9BE,EAASF,EAAQE,MAElB,IAAKA,EAAS,OACND,GAAQE,OACfF,EAAQC,SAER,KAAM7H,IAAQ6H,GACb,IAAMlH,EAAI,EAAG+G,EAAIG,EAAQ7H,GAAOD,OAAY2H,EAAJ/G,EAAOA,IAC9CV,GAAOiC,MAAM6F,IAAKP,EAAMxH,EAAM6H,EAAQ7H,GAAQW,IAM5CiH,EAAQrF,OACZqF,EAAQrF,KAAOtC,GAAOiE,UAAY0D,EAAQrF,QAI5C,QAASyF,GAAoBT,EAAKC,GACjC,GAAIxB,GAAUhD,EAAGT,CAGjB,IAAuB,IAAlBiF,EAAKrH,SAAV,CAOA,GAHA6F,EAAWwB,EAAKxB,SAASpD,eAGnB8B,GAAQuD,cAAgBT,EAAMvH,GAAOwD,SAAY,CACtDlB,EAAOtC,GAAOoH,MAAOG,EAErB,KAAMxE,IAAKT,GAAKsF,OACf5H,GAAOiI,YAAaV,EAAMxE,EAAGT,EAAKuF,OAInCN,GAAKN,gBAAiBjH,GAAOwD,SAIZ,WAAbuC,GAAyBwB,EAAKW,OAASZ,EAAIY,MAC/CvB,EAAeY,GAAOW,KAAOZ,EAAIY,KACjCpB,EAAeS,IAIS,WAAbxB,GACNwB,EAAKY,aACTZ,EAAKa,UAAYd,EAAIc,WAOjB3D,GAAQ4D,YAAgBf,EAAIgB,YAActI,GAAOuI,KAAKhB,EAAKe,aAC/Df,EAAKe,UAAYhB,EAAIgB,YAGE,UAAbvC,GAAwBI,GAAetF,KAAMyG,EAAIvH,OAK5DwH,EAAKnB,eAAiBmB,EAAKlB,QAAUiB,EAAIjB,QAIpCkB,EAAKiB,QAAUlB,EAAIkB,QACvBjB,EAAKiB,MAAQlB,EAAIkB,QAKM,WAAbzC,EACXwB,EAAKkB,gBAAkBlB,EAAKmB,SAAWpB,EAAImB,iBAInB,UAAb1C,GAAqC,aAAbA,KACnCwB,EAAKoB,aAAerB,EAAIqB,eAghB1B,QAASC,GAAepG,EAAMqG,GAC7B,GAAIC,GACHrI,EAAOT,GAAQ6I,EAAIxD,cAAe7C,IAASuG,SAAUF,EAAIG,MAGzDC,EAAUxJ,EAAOyJ,0BAA6BJ,EAAQrJ,EAAOyJ,wBAAyBzI,EAAM,KAI3FqI,EAAMG,QAAUjJ,GAAOmJ,IAAK1I,EAAM,GAAK,UAMzC,OAFAA,GAAKmB,SAEEqH,EAOR,QAASG,GAAgBrD,GACxB,GAAI8C,GAAMvJ,GACT2J,EAAUI,GAAatD,EA0BxB,OAxBMkD,KACLA,EAAUL,EAAe7C,EAAU8C,GAGlB,SAAZI,GAAuBA,IAG3BK,IAAUA,IAAUtJ,GAAQ,mDAAoD+I,SAAUF,EAAIU,iBAG9FV,GAAQS,GAAQ,GAAIE,eAAiBF,GAAQ,GAAIG,iBAAkBnK,SAGnEuJ,EAAIa,QACJb,EAAIc,QAEJV,EAAUL,EAAe7C,EAAU8C,GACnCS,GAAO1H,UAIRyH,GAAatD,GAAakD,GAGpBA,EA2KR,QAASW,GAAcC,EAAaC,GAEnC,OACCC,IAAK,WACJ,GAAIC,GAAYH,GAEhB,IAAkB,MAAbG,EAML,MAAKA,cAIGtK,MAAKqK,KAMLrK,KAAKqK,IAAMD,GAAQG,MAAOvK,KAAMwK,aAgM3C,QAASC,GAAgBrB,EAAOtG,GAG/B,GAAKA,IAAQsG,GACZ,MAAOtG,EAQR,KAJA,GAAI4H,GAAU5H,EAAK6H,OAAO,GAAGC,cAAgB9H,EAAK+H,MAAM,GACvDC,EAAWhI,EACX9B,EAAI+J,GAAY3K,OAETY,KAEP,GADA8B,EAAOiI,GAAa/J,GAAM0J,EACrB5H,IAAQsG,GACZ,MAAOtG,EAIT,OAAOgI,GAGR,QAASE,GAAUtK,EAAUuK,GAM5B,IALA,GAAI1B,GAASxI,EAAMmK,EAClBC,KACAC,EAAQ,EACRhL,EAASM,EAASN,OAEHA,EAARgL,EAAgBA,IACvBrK,EAAOL,EAAU0K,GACXrK,EAAKqI,QAIX+B,EAAQC,GAAU9K,GAAOoH,MAAO3G,EAAM,cACtCwI,EAAUxI,EAAKqI,MAAMG,QAChB0B,GAGEE,EAAQC,IAAuB,SAAZ7B,IACxBxI,EAAKqI,MAAMG,QAAU,IAMM,KAAvBxI,EAAKqI,MAAMG,SAAkB8B,GAAUtK,KAC3CoK,EAAQC,GAAU9K,GAAOoH,MAAO3G,EAAM,aAAc2I,EAAe3I,EAAKsF,cAGzE6E,EAASG,GAAUtK,IAEdwI,GAAuB,SAAZA,IAAuB2B,IACtC5K,GAAOoH,MAAO3G,EAAM,aAAcmK,EAAS3B,EAAUjJ,GAAOmJ,IAAK1I,EAAM,aAO1E,KAAMqK,EAAQ,EAAWhL,EAARgL,EAAgBA,IAChCrK,EAAOL,EAAU0K,GACXrK,EAAKqI,QAGL6B,GAA+B,SAAvBlK,EAAKqI,MAAMG,SAA6C,KAAvBxI,EAAKqI,MAAMG,UACzDxI,EAAKqI,MAAMG,QAAU0B,EAAOE,EAAQC,IAAW,GAAK,QAItD,OAAO1K,GAGR,QAAS4K,GAAmBvK,EAAM+H,EAAOyC,GACxC,GAAIC,GAAUC,GAAUnE,KAAMwB,EAC9B,OAAO0C,GAENE,KAAKC,IAAK,EAAGH,EAAS,IAAQD,GAAY,KAAUC,EAAS,IAAO,MACpE1C,EAGF,QAAS8C,GAAsB7K,EAAM+B,EAAM+I,EAAOC,EAAaC,GAS9D,IARA,GAAI/K,GAAI6K,KAAYC,EAAc,SAAW,WAE5C,EAES,UAAThJ,EAAmB,EAAI,EAEvBkJ,EAAM,EAEK,EAAJhL,EAAOA,GAAK,EAEJ,WAAV6K,IACJG,GAAO1L,GAAOmJ,IAAK1I,EAAM8K,EAAQI,GAAWjL,IAAK,EAAM+K,IAGnDD,GAEW,YAAVD,IACJG,GAAO1L,GAAOmJ,IAAK1I,EAAM,UAAYkL,GAAWjL,IAAK,EAAM+K,IAI7C,WAAVF,IACJG,GAAO1L,GAAOmJ,IAAK1I,EAAM,SAAWkL,GAAWjL,GAAM,SAAS,EAAM+K,MAIrEC,GAAO1L,GAAOmJ,IAAK1I,EAAM,UAAYkL,GAAWjL,IAAK,EAAM+K,GAG5C,YAAVF,IACJG,GAAO1L,GAAOmJ,IAAK1I,EAAM,SAAWkL,GAAWjL,GAAM,SAAS,EAAM+K,IAKvE,OAAOC,GAGR,QAASE,GAAkBnL,EAAM+B,EAAM+I,GAGtC,GAAIM,IAAmB,EACtBH,EAAe,UAATlJ,EAAmB/B,EAAKqL,YAAcrL,EAAKsL,aACjDN,EAASO,GAAWvL,GACpB+K,EAAc/G,GAAQwH,WAAgE,eAAnDjM,GAAOmJ,IAAK1I,EAAM,aAAa,EAAOgL,EAK1E,IAAY,GAAPC,GAAmB,MAAPA,EAAc,CAQ9B,GANAA,EAAMQ,GAAQzL,EAAM+B,EAAMiJ,IACf,EAANC,GAAkB,MAAPA,KACfA,EAAMjL,EAAKqI,MAAOtG,IAId2J,GAAUtL,KAAK6K,GACnB,MAAOA,EAKRG,GAAmBL,IAAiB/G,GAAQ2H,qBAAuBV,IAAQjL,EAAKqI,MAAOtG,IAGvFkJ,EAAMW,WAAYX,IAAS,EAI5B,MAASA,GACRJ,EACC7K,EACA+B,EACA+I,IAAWC,EAAc,SAAW,WACpCK,EACAJ,GAEE,KA2SL,QAASa,GAAO7L,EAAMW,EAASmL,EAAMC,EAAKC,GACzC,MAAO,IAAIH,GAAMI,UAAUC,KAAMlM,EAAMW,EAASmL,EAAMC,EAAKC,GAwK5D,QAASG,KAIR,MAHAC,YAAW,WACVC,GAAQvK,SAEAuK,GAAQ9M,GAAO+M,MAIzB,QAASC,GAAOjN,EAAMkN,GACrB,GAAIC,GACHC,GAAUC,OAAQrN,GAClBW,EAAI,CAKL,KADAuM,EAAeA,EAAe,EAAI,EACtB,EAAJvM,EAAQA,GAAK,EAAIuM,EACxBC,EAAQvB,GAAWjL,GACnByM,EAAO,SAAWD,GAAUC,EAAO,UAAYD,GAAUnN,CAO1D,OAJKkN,KACJE,EAAME,QAAUF,EAAMG,MAAQvN,GAGxBoN,EAGR,QAASI,GAAa/E,EAAO+D,EAAMiB,GAKlC,IAJA,GAAIC,GACHC,GAAeC,GAAUpB,QAAelI,OAAQsJ,GAAU,MAC1D7C,EAAQ,EACRhL,EAAS4N,EAAW5N,OACLA,EAARgL,EAAgBA,IACvB,GAAM2C,EAAQC,EAAY5C,GAAQnK,KAAM6M,EAAWjB,EAAM/D,GAGxD,MAAOiF,GAKV,QAASG,GAAkBnN,EAAMoN,EAAOC,GAEvC,GAAIvB,GAAM/D,EAAOuF,EAAQN,EAAOO,EAAOC,EAAShF,EAASiF,EACxDC,EAAOzO,KACP0O,KACAtF,EAAQrI,EAAKqI,MACb8B,EAASnK,EAAKP,UAAY6K,GAAUtK,GACpC4N,EAAWrO,GAAOoH,MAAO3G,EAAM,SAG1BqN,GAAKQ,QACVN,EAAQhO,GAAOuO,YAAa9N,EAAM,MACX,MAAlBuN,EAAMQ,WACVR,EAAMQ,SAAW,EACjBP,EAAUD,EAAMS,MAAMC,KACtBV,EAAMS,MAAMC,KAAO,WACZV,EAAMQ,UACXP,MAIHD,EAAMQ,WAENL,EAAKQ,OAAO,WAGXR,EAAKQ,OAAO,WACXX,EAAMQ,WACAxO,GAAOsO,MAAO7N,EAAM,MAAOX,QAChCkO,EAAMS,MAAMC,YAOO,IAAlBjO,EAAKP,WAAoB,UAAY2N,IAAS,SAAWA,MAK7DC,EAAKc,UAAa9F,EAAM8F,SAAU9F,EAAM+F,UAAW/F,EAAMgG,WAIzD7F,EAAUjJ,GAAOmJ,IAAK1I,EAAM,WAG5ByN,EAA2B,SAAZjF,EACdjJ,GAAOoH,MAAO3G,EAAM,eAAkB2I,EAAgB3I,EAAKsF,UAAakD,EAEnD,WAAjBiF,GAA6D,SAAhClO,GAAOmJ,IAAK1I,EAAM,WAI7CgE,GAAQsK,wBAA8D,WAApC3F,EAAgB3I,EAAKsF,UAG5D+C,EAAMkG,KAAO,EAFblG,EAAMG,QAAU,iBAOd6E,EAAKc,WACT9F,EAAM8F,SAAW,SACXnK,GAAQwK,oBACbd,EAAKQ,OAAO,WACX7F,EAAM8F,SAAWd,EAAKc,SAAU,GAChC9F,EAAM+F,UAAYf,EAAKc,SAAU,GACjC9F,EAAMgG,UAAYhB,EAAKc,SAAU,KAMpC,KAAMrC,IAAQsB,GAEb,GADArF,EAAQqF,EAAOtB,GACV2C,GAASlI,KAAMwB,GAAU,CAG7B,SAFOqF,GAAOtB,GACdwB,EAASA,GAAoB,WAAVvF,EACdA,KAAYoC,EAAS,OAAS,QAAW,CAG7C,GAAe,SAAVpC,IAAoB6F,GAAiC9L,SAArB8L,EAAU9B,GAG9C,QAFA3B,IAAS,EAKXwD,EAAM7B,GAAS8B,GAAYA,EAAU9B,IAAUvM,GAAO8I,MAAOrI,EAAM8L,OAInEtD,GAAU1G,MAIZ,IAAMvC,GAAOiD,cAAemL,GAwCqD,YAAxD,SAAZnF,EAAqBG,EAAgB3I,EAAKsF,UAAakD,KACnEH,EAAMG,QAAUA,OAzCoB,CAC/BoF,EACC,UAAYA,KAChBzD,EAASyD,EAASzD,QAGnByD,EAAWrO,GAAOoH,MAAO3G,EAAM,aAI3BsN,IACJM,EAASzD,QAAUA,GAEfA,EACJ5K,GAAQS,GAAOkK,OAEfwD,EAAKgB,KAAK,WACTnP,GAAQS,GAAO2O,SAGjBjB,EAAKgB,KAAK,WACT,GAAI5C,EACJvM,IAAOqP,YAAa5O,EAAM,SAC1B,KAAM8L,IAAQ6B,GACbpO,GAAO8I,MAAOrI,EAAM8L,EAAM6B,EAAM7B,KAGlC,KAAMA,IAAQ6B,GACbX,EAAQF,EAAa3C,EAASyD,EAAU9B,GAAS,EAAGA,EAAM4B,GAElD5B,IAAQ8B,KACfA,EAAU9B,GAASkB,EAAM6B,MACpB1E,IACJ6C,EAAMjB,IAAMiB,EAAM6B,MAClB7B,EAAM6B,MAAiB,UAAT/C,GAA6B,WAATA,EAAoB,EAAI,KAW/D,QAASgD,GAAY1B,EAAO2B,GAC3B,GAAI1E,GAAOtI,EAAMiK,EAAQjE,EAAOwF,CAGhC,KAAMlD,IAAS+C,GAed,GAdArL,EAAOxC,GAAOkE,UAAW4G,GACzB2B,EAAS+C,EAAehN,GACxBgG,EAAQqF,EAAO/C,GACV9K,GAAOoE,QAASoE,KACpBiE,EAASjE,EAAO,GAChBA,EAAQqF,EAAO/C,GAAUtC,EAAO,IAG5BsC,IAAUtI,IACdqL,EAAOrL,GAASgG,QACTqF,GAAO/C,IAGfkD,EAAQhO,GAAOyP,SAAUjN,GACpBwL,GAAS,UAAYA,GAAQ,CACjCxF,EAAQwF,EAAM0B,OAAQlH,SACfqF,GAAOrL,EAId,KAAMsI,IAAStC,GACNsC,IAAS+C,KAChBA,EAAO/C,GAAUtC,EAAOsC,GACxB0E,EAAe1E,GAAU2B,OAI3B+C,GAAehN,GAASiK,EAK3B,QAASkD,GAAWlP,EAAMmP,EAAYxO,GACrC,GAAIyO,GACHC,EACAhF,EAAQ,EACRhL,EAASiQ,GAAoBjQ,OAC7BkQ,EAAWhQ,GAAOiQ,WAAWtB,OAAQ,iBAE7BuB,GAAKzP,OAEbyP,EAAO,WACN,GAAKJ,EACJ,OAAO,CAUR,KARA,GAAIK,GAAcrD,IAASF,IAC1BwD,EAAYhF,KAAKC,IAAK,EAAGmC,EAAU6C,UAAY7C,EAAU8C,SAAWH,GAEpEI,EAAOH,EAAY5C,EAAU8C,UAAY,EACzCE,EAAU,EAAID,EACdzF,EAAQ,EACRhL,EAAS0N,EAAUiD,OAAO3Q,OAEXA,EAARgL,EAAiBA,IACxB0C,EAAUiD,OAAQ3F,GAAQ4F,IAAKF,EAKhC,OAFAR,GAASW,WAAYlQ,GAAQ+M,EAAWgD,EAASJ,IAElC,EAAVI,GAAe1Q,EACZsQ,GAEPJ,EAASY,YAAanQ,GAAQ+M,KACvB,IAGTA,EAAYwC,EAASa,SACpBpQ,KAAMA,EACNoN,MAAO7N,GAAOiE,UAAY2L,GAC1B9B,KAAM9N,GAAOiE,QAAQ,GAAQuL,kBAAqBpO,GAClD0P,mBAAoBlB,EACpBmB,gBAAiB3P,EACjBiP,UAAWvD,IAASF,IACpB0D,SAAUlP,EAAQkP,SAClBG,UACAlD,YAAa,SAAUhB,EAAMC,GAC5B,GAAIiB,GAAQzN,GAAOsM,MAAO7L,EAAM+M,EAAUM,KAAMvB,EAAMC,EACpDgB,EAAUM,KAAK0B,cAAejD,IAAUiB,EAAUM,KAAKrB,OAEzD,OADAe,GAAUiD,OAAOzK,KAAMyH,GAChBA,GAERuD,KAAM,SAAUC,GACf,GAAInG,GAAQ,EAGXhL,EAASmR,EAAUzD,EAAUiD,OAAO3Q,OAAS,CAC9C,IAAKgQ,EACJ,MAAOpQ,KAGR,KADAoQ,GAAU,EACMhQ,EAARgL,EAAiBA,IACxB0C,EAAUiD,OAAQ3F,GAAQ4F,IAAK,EAUhC,OALKO,GACJjB,EAASY,YAAanQ,GAAQ+M,EAAWyD,IAEzCjB,EAASkB,WAAYzQ,GAAQ+M,EAAWyD,IAElCvR,QAGTmO,EAAQL,EAAUK,KAInB,KAFA0B,EAAY1B,EAAOL,EAAUM,KAAK0B,eAElB1P,EAARgL,EAAiBA,IAExB,GADA+E,EAASE,GAAqBjF,GAAQnK,KAAM6M,EAAW/M,EAAMoN,EAAOL,EAAUM,MAE7E,MAAO+B,EAmBT,OAfA7P,IAAOsE,IAAKuJ,EAAON,EAAaC,GAE3BxN,GAAOO,WAAYiN,EAAUM,KAAKwB,QACtC9B,EAAUM,KAAKwB,MAAM3O,KAAMF,EAAM+M,GAGlCxN,GAAOmR,GAAGC,MACTpR,GAAOiE,OAAQiM,GACdzP,KAAMA,EACN0N,KAAMX,EACNc,MAAOd,EAAUM,KAAKQ,SAKjBd,EAAU6D,SAAU7D,EAAUM,KAAKuD,UACxClC,KAAM3B,EAAUM,KAAKqB,KAAM3B,EAAUM,KAAKwD,UAC1CC,KAAM/D,EAAUM,KAAKyD,MACrB5C,OAAQnB,EAAUM,KAAKa,QA6rC1B,QAAS6C,GAA6BC,GAGrC,MAAO,UAAUC,EAAoBC,GAED,gBAAvBD,KACXC,EAAOD,EACPA,EAAqB,IAGtB,IAAIE,GACHlR,EAAI,EACJmR,EAAYH,EAAmB/O,cAAcnB,MAAOC,OAErD,IAAKzB,GAAOO,WAAYoR,GAEvB,KAASC,EAAWC,EAAUnR,MAEC,MAAzBkR,EAASvH,OAAQ,IACrBuH,EAAWA,EAASrH,MAAO,IAAO,KACjCkH,EAAWG,GAAaH,EAAWG,QAAkBE,QAASH,KAI9DF,EAAWG,GAAaH,EAAWG,QAAkB5L,KAAM2L,IAQjE,QAASI,GAA+BN,EAAWrQ,EAAS2P,EAAiBiB,GAK5E,QAASC,GAASL,GACjB,GAAIlJ,EAYJ,OAXAwJ,GAAWN,IAAa,EACxB5R,GAAOuB,KAAMkQ,EAAWG,OAAkB,SAAUlQ,EAAGyQ,GACtD,GAAIC,GAAsBD,EAAoB/Q,EAAS2P,EAAiBiB,EACxE,OAAoC,gBAAxBI,IAAqCC,GAAqBH,EAAWE,GAIrEC,IACD3J,EAAW0J,GADf,QAHNhR,EAAQyQ,UAAUC,QAASM,GAC3BH,EAASG,IACF,KAKF1J,EAhBR,GAAIwJ,MACHG,EAAqBZ,IAAca,EAkBpC,OAAOL,GAAS7Q,EAAQyQ,UAAW,MAAUK,EAAW,MAASD,EAAS,KAM3E,QAASM,GAAYC,EAAQlL,GAC5B,GAAImL,GAAMpQ,EACTqQ,EAAc1S,GAAO2S,aAAaD,eAEnC,KAAMrQ,IAAOiF,GACQ/E,SAAf+E,EAAKjF,MACPqQ,EAAarQ,GAAQmQ,EAAWC,IAASA,OAAgBpQ,GAAQiF,EAAKjF,GAO1E,OAJKoQ,IACJzS,GAAOiE,QAAQ,EAAMuO,EAAQC,GAGvBD,EAOR,QAASI,GAAqBC,EAAGb,EAAOc,GAMvC,IALA,GAAIC,GAAeC,EAAIC,EAAelT,EACrCmT,EAAWL,EAAEK,SACbrB,EAAYgB,EAAEhB,UAGY,MAAnBA,EAAW,IAClBA,EAAUsB,QACE5Q,SAAPyQ,IACJA,EAAKH,EAAEO,UAAYpB,EAAMqB,kBAAkB,gBAK7C,IAAKL,EACJ,IAAMjT,IAAQmT,GACb,GAAKA,EAAUnT,IAAUmT,EAAUnT,GAAOc,KAAMmS,GAAO,CACtDnB,EAAUC,QAAS/R,EACnB,OAMH,GAAK8R,EAAW,IAAOiB,GACtBG,EAAgBpB,EAAW,OACrB,CAEN,IAAM9R,IAAQ+S,GAAY,CACzB,IAAMjB,EAAW,IAAOgB,EAAES,WAAYvT,EAAO,IAAM8R,EAAU,IAAO,CACnEoB,EAAgBlT,CAChB,OAEKgT,IACLA,EAAgBhT,GAIlBkT,EAAgBA,GAAiBF,EAMlC,MAAKE,IACCA,IAAkBpB,EAAW,IACjCA,EAAUC,QAASmB,GAEbH,EAAWG,IAJnB,OAWD,QAASM,GAAaV,EAAGW,EAAUxB,EAAOyB,GACzC,GAAIC,GAAOC,EAASC,EAAMC,EAAKC,EAC9BR,KAEAzB,EAAYgB,EAAEhB,UAAUtH,OAGzB,IAAKsH,EAAW,GACf,IAAM+B,IAAQf,GAAES,WACfA,EAAYM,EAAKjR,eAAkBkQ,EAAES,WAAYM,EAOnD,KAHAD,EAAU9B,EAAUsB,QAGZQ,GAcP,GAZKd,EAAEkB,eAAgBJ,KACtB3B,EAAOa,EAAEkB,eAAgBJ,IAAcH,IAIlCM,GAAQL,GAAaZ,EAAEmB,aAC5BR,EAAWX,EAAEmB,WAAYR,EAAUX,EAAEjB,WAGtCkC,EAAOH,EACPA,EAAU9B,EAAUsB,QAKnB,GAAiB,MAAZQ,EAEJA,EAAUG,MAGJ,IAAc,MAATA,GAAgBA,IAASH,EAAU,CAM9C,GAHAC,EAAON,EAAYQ,EAAO,IAAMH,IAAaL,EAAY,KAAOK,IAG1DC,EACL,IAAMF,IAASJ,GAId,GADAO,EAAMH,EAAMnP,MAAO,KACdsP,EAAK,KAAQF,IAGjBC,EAAON,EAAYQ,EAAO,IAAMD,EAAK,KACpCP,EAAY,KAAOO,EAAK,KACb,CAEND,KAAS,EACbA,EAAON,EAAYI,GAGRJ,EAAYI,MAAY,IACnCC,EAAUE,EAAK,GACfhC,EAAUC,QAAS+B,EAAK,IAEzB,OAOJ,GAAKD,KAAS,EAGb,GAAKA,GAAQf,EAAY,OACxBW,EAAWI,EAAMJ,OAEjB,KACCA,EAAWI,EAAMJ,GAChB,MAAQzQ,GACT,OAASkR,MAAO,cAAeC,MAAON,EAAO7Q,EAAI,sBAAwB+Q,EAAO,OAASH,IAQ/F,OAASM,MAAO,UAAW3R,KAAMkR,GAymBlC,QAASW,GAAaC,EAAQvU,EAAKwU,EAAavM,GAC/C,GAAItF,EAEJ,IAAKxC,GAAOoE,QAASvE,GAEpBG,GAAOuB,KAAM1B,EAAK,SAAUa,EAAG4T,GACzBD,GAAeE,GAAS1T,KAAMuT,GAElCtM,EAAKsM,EAAQE,GAIbH,EAAaC,EAAS,KAAqB,gBAANE,GAAiB5T,EAAI,IAAO,IAAK4T,EAAGD,EAAavM,SAIlF,IAAMuM,GAAsC,WAAvBrU,GAAOD,KAAMF,GAQxCiI,EAAKsM,EAAQvU,OANb,KAAM2C,IAAQ3C,GACbsU,EAAaC,EAAS,IAAM5R,EAAO,IAAK3C,EAAK2C,GAAQ6R,EAAavM,GA8PrE,QAAS0M,KACR,IACC,MAAO,IAAI/U,GAAOgV,eACjB,MAAO1R,KAGV,QAAS2R,KACR,IACC,MAAO,IAAIjV,GAAOkV,cAAe,qBAChC,MAAO5R,KA8SV,QAAS6R,GAAWnU,GACnB,MAAOT,IAAOC,SAAUQ,GACvBA,EACkB,IAAlBA,EAAKP,SACJO,EAAKoU,aAAepU,EAAKqU,cACzB,EA3xTH,GAAIlR,MAEA2G,EAAQ3G,EAAW2G,MAEnBlG,EAAST,EAAWS,OAEpB2B,EAAOpC,EAAWoC,KAElB+O,EAAUnR,EAAWmR,QAErBC,KAEAC,GAAWD,EAAWC,SAEtBC,GAASF,EAAWG,eAEpB1Q,MAKH2Q,GAAU,SAGVpV,GAAS,SAAUqV,EAAU9P,GAG5B,MAAO,IAAIvF,IAAOsV,GAAG3I,KAAM0I,EAAU9P,IAKtCgQ,GAAQ,qCAGRC,GAAY,QACZC,GAAa,eAGbC,GAAa,SAAUC,EAAKC,GAC3B,MAAOA,GAAOtL,cAGhBtK,IAAOsV,GAAKtV,GAAO0M,WAElBmJ,OAAQT,GAERU,YAAa9V,GAGbqV,SAAU,GAGVvV,OAAQ,EAERiW,QAAS,WACR,MAAOxL,GAAM5J,KAAMjB,OAKpBqK,IAAK,SAAUiM,GACd,MAAc,OAAPA,EAGE,EAANA,EAAUtW,KAAMsW,EAAMtW,KAAKI,QAAWJ,KAAMsW,GAG9CzL,EAAM5J,KAAMjB,OAKduW,UAAW,SAAUxQ,GAGpB,GAAIpC,GAAMrD,GAAOiG,MAAOvG,KAAKoW,cAAerQ,EAO5C,OAJApC,GAAI6S,WAAaxW,KACjB2D,EAAIkC,QAAU7F,KAAK6F,QAGZlC,GAMR9B,KAAM,SAAU4U,EAAUC,GACzB,MAAOpW,IAAOuB,KAAM7B,KAAMyW,EAAUC,IAGrC9R,IAAK,SAAU6R,GACd,MAAOzW,MAAKuW,UAAWjW,GAAOsE,IAAI5E,KAAM,SAAUe,EAAMC,GACvD,MAAOyV,GAASxV,KAAMF,EAAMC,EAAGD,OAIjC8J,MAAO,WACN,MAAO7K,MAAKuW,UAAW1L,EAAMN,MAAOvK,KAAMwK,aAG3CmM,MAAO,WACN,MAAO3W,MAAK4W,GAAI,IAGjBC,KAAM,WACL,MAAO7W,MAAK4W,GAAI,KAGjBA,GAAI,SAAU5V,GACb,GAAI8V,GAAM9W,KAAKI,OACd2W,GAAK/V,GAAU,EAAJA,EAAQ8V,EAAM,EAC1B,OAAO9W,MAAKuW,UAAWQ,GAAK,GAASD,EAAJC,GAAY/W,KAAK+W,SAGnDjK,IAAK,WACJ,MAAO9M,MAAKwW,YAAcxW,KAAKoW,YAAY,OAK5C9P,KAAMA,EACN0Q,KAAM9S,EAAW8S,KACjBC,OAAQ/S,EAAW+S,QAGpB3W,GAAOiE,OAASjE,GAAOsV,GAAGrR,OAAS,WAClC,GAAIqD,GAAKsP,EAAaC,EAAMrU,EAAMpB,EAAS0V,EAC1CtE,EAAStI,UAAU,OACnBxJ,EAAI,EACJZ,EAASoK,UAAUpK,OACnB2S,GAAO,CAsBR,KAnBuB,iBAAXD,KACXC,EAAOD,EAGPA,EAAStI,UAAWxJ,OACpBA,KAIsB,gBAAX8R,IAAwBxS,GAAOO,WAAWiS,KACrDA,MAII9R,IAAMZ,IACV0S,EAAS9S,KACTgB,KAGWZ,EAAJY,EAAYA,IAEnB,GAAmC,OAA7BU,EAAU8I,UAAWxJ,IAE1B,IAAM8B,IAAQpB,GACbkG,EAAMkL,EAAQhQ,GACdqU,EAAOzV,EAASoB,GAGXgQ,IAAWqE,IAKXpE,GAAQoE,IAAU7W,GAAO+W,cAAcF,KAAUD,EAAc5W,GAAOoE,QAAQyS,MAC7ED,GACJA,GAAc,EACdE,EAAQxP,GAAOtH,GAAOoE,QAAQkD,GAAOA,MAGrCwP,EAAQxP,GAAOtH,GAAO+W,cAAczP,GAAOA,KAI5CkL,EAAQhQ,GAASxC,GAAOiE,OAAQwO,EAAMqE,EAAOD,IAGzBtU,SAATsU,IACXrE,EAAQhQ,GAASqU,GAOrB,OAAOrE,IAGRxS,GAAOiE,QAENT,QAAS,UAAa4R,GAAUhK,KAAK4L,UAAWvU,QAAS,MAAO,IAGhEwU,SAAS,EAET/C,MAAO,SAAUgD,GAChB,KAAM,IAAI1X,OAAO0X,IAGlBlT,KAAM,aAKNzD,WAAY,SAAUV,GACrB,MAA4B,aAArBG,GAAOD,KAAKF,IAGpBuE,QAAS+S,MAAM/S,SAAW,SAAUvE,GACnC,MAA4B,UAArBG,GAAOD,KAAKF,IAGpBI,SAAU,SAAUJ,GAEnB,MAAc,OAAPA,GAAeA,GAAOA,EAAIJ,QAGlC2X,UAAW,SAAUvX,GAKpB,OAAQG,GAAOoE,QAASvE,IAAUA,EAAMwM,WAAYxM,GAAQ,GAAM,GAGnEoD,cAAe,SAAUpD,GACxB,GAAI2C,EACJ,KAAMA,IAAQ3C,GACb,OAAO,CAER,QAAO,GAGRkX,cAAe,SAAUlX,GACxB,GAAIwC,EAKJ,KAAMxC,GAA4B,WAArBG,GAAOD,KAAKF,IAAqBA,EAAIK,UAAYF,GAAOC,SAAUJ,GAC9E,OAAO,CAGR,KAEC,GAAKA,EAAIiW,cACPZ,GAAOvU,KAAKd,EAAK,iBACjBqV,GAAOvU,KAAKd,EAAIiW,YAAYpJ,UAAW,iBACxC,OAAO,EAEP,MAAQ3J,GAET,OAAO,EAKR,GAAK0B,GAAQ4S,QACZ,IAAMhV,IAAOxC,GACZ,MAAOqV,IAAOvU,KAAMd,EAAKwC,EAM3B,KAAMA,IAAOxC,IAEb,MAAe0C,UAARF,GAAqB6S,GAAOvU,KAAMd,EAAKwC,IAG/CtC,KAAM,SAAUF,GACf,MAAY,OAAPA,EACGA,EAAM,GAEQ,gBAARA,IAAmC,kBAARA,GACxCmV,EAAYC,GAAStU,KAAKd,KAAU,eAC7BA,IAMTyX,WAAY,SAAUhV,GAChBA,GAAQtC,GAAOuI,KAAMjG,KAIvB7C,EAAO8X,YAAc,SAAUjV,GAChC7C,EAAe,KAAEkB,KAAMlB,EAAQ6C,KAC3BA,IAMP4B,UAAW,SAAUsT,GACpB,MAAOA,GAAO/U,QAAS+S,GAAW,OAAQ/S,QAASgT,GAAYC,KAGhE3P,SAAU,SAAUtF,EAAM+B,GACzB,MAAO/B,GAAKsF,UAAYtF,EAAKsF,SAASpD,gBAAkBH,EAAKG,eAI9DpB,KAAM,SAAU1B,EAAKsW,EAAUC,GAC9B,GAAI5N,GACH9H,EAAI,EACJZ,EAASD,EAAIC,OACbsE,EAAUxE,EAAaC,EAExB,IAAKuW,GACJ,GAAKhS,EACJ,KAAYtE,EAAJY,IACP8H,EAAQ2N,EAASlM,MAAOpK,EAAKa,GAAK0V,GAE7B5N,KAAU,GAHI9H,SAQpB,KAAMA,IAAKb,GAGV,GAFA2I,EAAQ2N,EAASlM,MAAOpK,EAAKa,GAAK0V,GAE7B5N,KAAU,EACd,UAOH,IAAKpE,EACJ,KAAYtE,EAAJY,IACP8H,EAAQ2N,EAASxV,KAAMd,EAAKa,GAAKA,EAAGb,EAAKa,IAEpC8H,KAAU,GAHI9H,SAQpB,KAAMA,IAAKb,GAGV,GAFA2I,EAAQ2N,EAASxV,KAAMd,EAAKa,GAAKA,EAAGb,EAAKa,IAEpC8H,KAAU,EACd,KAMJ,OAAO3I,IAIR0I,KAAM,SAAUL,GACf,MAAe,OAARA,EACN,IACEA,EAAO,IAAKzF,QAAS8S,GAAO,KAIhCkC,UAAW,SAAUC,EAAKC,GACzB,GAAItU,GAAMsU,KAaV,OAXY,OAAPD,IACC9X,EAAagY,OAAOF,IACxB1X,GAAOiG,MAAO5C,EACE,gBAARqU,IACLA,GAAQA,GAGX1R,EAAKrF,KAAM0C,EAAKqU,IAIXrU,GAGRtC,QAAS,SAAUN,EAAMiX,EAAKhX,GAC7B,GAAI8V,EAEJ,IAAKkB,EAAM,CACV,GAAK3C,EACJ,MAAOA,GAAQpU,KAAM+W,EAAKjX,EAAMC,EAMjC,KAHA8V,EAAMkB,EAAI5X,OACVY,EAAIA,EAAQ,EAAJA,EAAQ0K,KAAKC,IAAK,EAAGmL,EAAM9V,GAAMA,EAAI,EAEjC8V,EAAJ9V,EAASA,IAEhB,GAAKA,IAAKgX,IAAOA,EAAKhX,KAAQD,EAC7B,MAAOC,GAKV,MAAO,IAGRuF,MAAO,SAAUoQ,EAAOwB,GAKvB,IAJA,GAAIrB,IAAOqB,EAAO/X,OACjB2W,EAAI,EACJ/V,EAAI2V,EAAMvW,OAEC0W,EAAJC,GACPJ,EAAO3V,KAAQmX,EAAQpB,IAKxB,IAAKD,IAAQA,EACZ,KAAsBjU,SAAdsV,EAAOpB,IACdJ,EAAO3V,KAAQmX,EAAQpB,IAMzB,OAFAJ,GAAMvW,OAASY,EAER2V,GAGR7V,KAAM,SAAUiF,EAAO0Q,EAAU2B,GAShC,IARA,GAAIC,GACH7M,KACAxK,EAAI,EACJZ,EAAS2F,EAAM3F,OACfkY,GAAkBF,EAIPhY,EAAJY,EAAYA,IACnBqX,GAAmB5B,EAAU1Q,EAAO/E,GAAKA,GACpCqX,IAAoBC,GACxB9M,EAAQlF,KAAMP,EAAO/E,GAIvB,OAAOwK,IAIR5G,IAAK,SAAUmB,EAAO0Q,EAAU8B,GAC/B,GAAIzP,GACH9H,EAAI,EACJZ,EAAS2F,EAAM3F,OACfsE,EAAUxE,EAAa6F,GACvBpC,IAGD,IAAKe,EACJ,KAAYtE,EAAJY,EAAYA,IACnB8H,EAAQ2N,EAAU1Q,EAAO/E,GAAKA,EAAGuX,GAEnB,MAATzP,GACJnF,EAAI2C,KAAMwC,OAMZ,KAAM9H,IAAK+E,GACV+C,EAAQ2N,EAAU1Q,EAAO/E,GAAKA,EAAGuX,GAEnB,MAATzP,GACJnF,EAAI2C,KAAMwC,EAMb,OAAOnE,GAAO4F,SAAW5G,IAI1BS,KAAM,EAINoU,MAAO,SAAU5C,EAAI/P,GACpB,GAAI6Q,GAAM8B,EAAOrE,CAUjB,OARwB,gBAAZtO,KACXsO,EAAMyB,EAAI/P,GACVA,EAAU+P,EACVA,EAAKzB,GAKA7T,GAAOO,WAAY+U,IAKzBc,EAAO7L,EAAM5J,KAAMuJ,UAAW,GAC9BgO,EAAQ,WACP,MAAO5C,GAAGrL,MAAO1E,GAAW7F,KAAM0W,EAAK/R,OAAQkG,EAAM5J,KAAMuJ,cAI5DgO,EAAMpU,KAAOwR,EAAGxR,KAAOwR,EAAGxR,MAAQ9D,GAAO8D,OAElCoU,GAZC3V,QAeTwK,IAAK,WACJ,OAAQ,GAAMoL,OAKf1T,QAASA,KAIVzE,GAAOuB,KAAK,gEAAgEgD,MAAM,KAAM,SAAS7D,EAAG8B,GACnGwS,EAAY,WAAaxS,EAAO,KAAQA,EAAKG,eAkB9C,IAAIyV,IAWJ,SAAW3Y,GA0LX,QAAS2Y,GAAQ/C,EAAU9P,EAASoS,EAASU,GAC5C,GAAI7W,GAAOf,EAAM6X,EAAGpY,EAEnBQ,EAAG6X,EAAQC,EAAKC,EAAKC,EAAYC,CAUlC,KAROpT,EAAUA,EAAQmB,eAAiBnB,EAAUqT,KAAmBtZ,GACtEuZ,EAAatT,GAGdA,EAAUA,GAAWjG,EACrBqY,EAAUA,MACVzX,EAAWqF,EAAQrF,SAEM,gBAAbmV,KAA0BA,GACxB,IAAbnV,GAA+B,IAAbA,GAA+B,KAAbA,EAEpC,MAAOyX,EAGR,KAAMU,GAAQS,EAAiB,CAG9B,GAAkB,KAAb5Y,IAAoBsB,EAAQuX,GAAW/R,KAAMqO,IAEjD,GAAMiD,EAAI9W,EAAM,IACf,GAAkB,IAAbtB,EAAiB,CAIrB,GAHAO,EAAO8E,EAAQyT,eAAgBV,IAG1B7X,IAAQA,EAAK0H,WAQjB,MAAOwP,EALP,IAAKlX,EAAKkD,KAAO2U,EAEhB,MADAX,GAAQ3R,KAAMvF,GACPkX,MAOT,IAAKpS,EAAQmB,gBAAkBjG,EAAO8E,EAAQmB,cAAcsS,eAAgBV,KAC3EW,EAAU1T,EAAS9E,IAAUA,EAAKkD,KAAO2U,EAEzC,MADAX,GAAQ3R,KAAMvF,GACPkX,MAKH,CAAA,GAAKnW,EAAM,GAEjB,MADAwE,GAAKiE,MAAO0N,EAASpS,EAAQI,qBAAsB0P,IAC5CsC,CAGD,KAAMW,EAAI9W,EAAM,KAAOiD,EAAQyU,uBAErC,MADAlT,GAAKiE,MAAO0N,EAASpS,EAAQ2T,uBAAwBZ,IAC9CX,EAKT,GAAKlT,EAAQ0U,OAASC,IAAcA,EAAUvY,KAAMwU,IAAc,CASjE,GARAoD,EAAMD,EAAMhV,EACZkV,EAAanT,EACboT,EAA2B,IAAbzY,GAAkBmV,EAMd,IAAbnV,GAAqD,WAAnCqF,EAAQQ,SAASpD,cAA6B,CAWpE,IAVA4V,EAASc,EAAUhE,IAEbmD,EAAMjT,EAAQ3C,aAAa,OAChC6V,EAAMD,EAAI/V,QAAS6W,GAAS,QAE5B/T,EAAQgU,aAAc,KAAMd,GAE7BA,EAAM,QAAUA,EAAM,MAEtB/X,EAAI6X,EAAOzY,OACHY,KACP6X,EAAO7X,GAAK+X,EAAMe,EAAYjB,EAAO7X,GAEtCgY,GAAae,GAAS5Y,KAAMwU,IAAcqE,EAAanU,EAAQ4C,aAAgB5C,EAC/EoT,EAAcJ,EAAOoB,KAAK,KAG3B,GAAKhB,EACJ,IAIC,MAHA3S,GAAKiE,MAAO0N,EACXe,EAAW7S,iBAAkB8S,IAEvBhB,EACN,MAAMiC,IACN,QACKpB,GACLjT,EAAQ0B,gBAAgB,QAQ7B,MAAO4S,GAAQxE,EAAS5S,QAAS8S,GAAO,MAAQhQ,EAASoS,EAASU,GASnE,QAASyB,KAGR,QAASpW,GAAOrB,EAAKmG,GAMpB,MAJKuR,GAAK/T,KAAM3D,EAAM,KAAQ2X,EAAKC,mBAE3BvW,GAAOqW,EAAK5G,SAEZzP,EAAOrB,EAAM,KAAQmG,EAR9B,GAAIuR,KAUJ,OAAOrW,GAOR,QAASwW,GAAc5E,GAEtB,MADAA,GAAI9R,IAAY,EACT8R,EAOR,QAAS6E,GAAQ7E,GAChB,GAAI8E,GAAM9a,EAAS+F,cAAc,MAEjC,KACC,QAASiQ,EAAI8E,GACZ,MAAOrX,GACR,OAAO,EACN,QAEIqX,EAAIjS,YACRiS,EAAIjS,WAAWkS,YAAaD,GAG7BA,EAAM,MASR,QAASE,GAAWnN,EAAOoN,GAI1B,IAHA,GAAI7C,GAAMvK,EAAM5I,MAAM,KACrB7D,EAAIyM,EAAMrN,OAEHY,KACPsZ,EAAKQ,WAAY9C,EAAIhX,IAAO6Z,EAU9B,QAASE,GAAcC,EAAGC,GACzB,GAAI1Z,GAAM0Z,GAAKD,EACdE,EAAO3Z,GAAsB,IAAfyZ,EAAExa,UAAiC,IAAfya,EAAEza,YAChCya,EAAEE,aAAeC,KACjBJ,EAAEG,aAAeC,EAGtB,IAAKF,EACJ,MAAOA,EAIR,IAAK3Z,EACJ,KAASA,EAAMA,EAAI8Z,aAClB,GAAK9Z,IAAQ0Z,EACZ,MAAO,EAKV,OAAOD,GAAI,EAAI,GAOhB,QAASM,GAAmBjb,GAC3B,MAAO,UAAUU,GAChB,GAAI+B,GAAO/B,EAAKsF,SAASpD,aACzB,OAAgB,UAATH,GAAoB/B,EAAKV,OAASA,GAQ3C,QAASkb,GAAoBlb,GAC5B,MAAO,UAAUU,GAChB,GAAI+B,GAAO/B,EAAKsF,SAASpD,aACzB,QAAiB,UAATH,GAA6B,WAATA,IAAsB/B,EAAKV,OAASA,GAQlE,QAASmb,GAAwB5F,GAChC,MAAO4E,GAAa,SAAUiB,GAE7B,MADAA,IAAYA,EACLjB,EAAa,SAAU7B,EAAMnN,GAMnC,IALA,GAAIuL,GACH2E,EAAe9F,KAAQ+C,EAAKvY,OAAQqb,GACpCza,EAAI0a,EAAatb,OAGVY,KACF2X,EAAO5B,EAAI2E,EAAa1a,MAC5B2X,EAAK5B,KAAOvL,EAAQuL,GAAK4B,EAAK5B,SAYnC,QAASiD,GAAanU,GACrB,MAAOA,IAAmD,mBAAjCA,GAAQI,sBAAwCJ,EAg/B1E,QAAS8V,MAuET,QAAS7B,GAAY8B,GAIpB,IAHA,GAAI5a,GAAI,EACP8V,EAAM8E,EAAOxb,OACbuV,EAAW,GACAmB,EAAJ9V,EAASA,IAChB2U,GAAYiG,EAAO5a,GAAG8H,KAEvB,OAAO6M,GAGR,QAASkG,GAAeC,EAASC,EAAYC,GAC5C,GAAIxa,GAAMua,EAAWva,IACpBya,EAAmBD,GAAgB,eAARxa,EAC3B0a,EAAWzM,GAEZ,OAAOsM,GAAWpF,MAEjB,SAAU5V,EAAM8E,EAASsW,GACxB,KAASpb,EAAOA,EAAMS,IACrB,GAAuB,IAAlBT,EAAKP,UAAkByb,EAC3B,MAAOH,GAAS/a,EAAM8E,EAASsW,IAMlC,SAAUpb,EAAM8E,EAASsW,GACxB,GAAIC,GAAUC,EACbC,GAAaC,EAASL,EAGvB,IAAKC,GACJ,KAASpb,EAAOA,EAAMS,IACrB,IAAuB,IAAlBT,EAAKP,UAAkByb,IACtBH,EAAS/a,EAAM8E,EAASsW,GAC5B,OAAO,MAKV,MAASpb,EAAOA,EAAMS,IACrB,GAAuB,IAAlBT,EAAKP,UAAkByb,EAAmB,CAE9C,GADAI,EAAatb,EAAM+C,KAAc/C,EAAM+C,QACjCsY,EAAWC,EAAY7a,KAC5B4a,EAAU,KAAQG,GAAWH,EAAU,KAAQF,EAG/C,MAAQI,GAAU,GAAMF,EAAU,EAMlC,IAHAC,EAAY7a,GAAQ8a,EAGdA,EAAU,GAAMR,EAAS/a,EAAM8E,EAASsW,GAC7C,OAAO,IASf,QAASK,GAAgBC,GACxB,MAAOA,GAASrc,OAAS,EACxB,SAAUW,EAAM8E,EAASsW,GAExB,IADA,GAAInb,GAAIyb,EAASrc,OACTY,KACP,IAAMyb,EAASzb,GAAID,EAAM8E,EAASsW,GACjC,OAAO,CAGT,QAAO,GAERM,EAAS,GAGX,QAASC,GAAkB/G,EAAUgH,EAAU1E,GAG9C,IAFA,GAAIjX,GAAI,EACP8V,EAAM6F,EAASvc,OACJ0W,EAAJ9V,EAASA,IAChB0X,EAAQ/C,EAAUgH,EAAS3b,GAAIiX,EAEhC,OAAOA,GAGR,QAAS2E,GAAUC,EAAWjY,EAAKxD,EAAQyE,EAASsW,GAOnD,IANA,GAAIpb,GACH+b,KACA9b,EAAI,EACJ8V,EAAM+F,EAAUzc,OAChB2c,EAAgB,MAAPnY,EAEEkS,EAAJ9V,EAASA,KACVD,EAAO8b,EAAU7b,OAChBI,GAAUA,EAAQL,EAAM8E,EAASsW,MACtCW,EAAaxW,KAAMvF,GACdgc,GACJnY,EAAI0B,KAAMtF,GAMd,OAAO8b,GAGR,QAASE,GAAYC,EAAWtH,EAAUmG,EAASoB,EAAYC,EAAYC,GAO1E,MANKF,KAAeA,EAAYpZ,KAC/BoZ,EAAaF,EAAYE,IAErBC,IAAeA,EAAYrZ,KAC/BqZ,EAAaH,EAAYG,EAAYC,IAE/B5C,EAAa,SAAU7B,EAAMV,EAASpS,EAASsW,GACrD,GAAItL,GAAM7P,EAAGD,EACZsc,KACAC,KACAC,EAActF,EAAQ7X,OAGtB2F,EAAQ4S,GAAQ+D,EAAkB/G,GAAY,IAAK9P,EAAQrF,UAAaqF,GAAYA,MAGpF2X,GAAYP,IAAetE,GAAShD,EAEnC5P,EADA6W,EAAU7W,EAAOsX,EAAQJ,EAAWpX,EAASsW,GAG9CsB,EAAa3B,EAEZqB,IAAgBxE,EAAOsE,EAAYM,GAAeL,MAMjDjF,EACDuF,CAQF,IALK1B,GACJA,EAAS0B,EAAWC,EAAY5X,EAASsW,GAIrCe,EAMJ,IALArM,EAAO+L,EAAUa,EAAYH,GAC7BJ,EAAYrM,KAAUhL,EAASsW,GAG/Bnb,EAAI6P,EAAKzQ,OACDY,MACDD,EAAO8P,EAAK7P,MACjByc,EAAYH,EAAQtc,MAASwc,EAAWF,EAAQtc,IAAOD,GAK1D,IAAK4X,GACJ,GAAKwE,GAAcF,EAAY,CAC9B,GAAKE,EAAa,CAIjB,IAFAtM,KACA7P,EAAIyc,EAAWrd,OACPY,MACDD,EAAO0c,EAAWzc,KAEvB6P,EAAKvK,KAAOkX,EAAUxc,GAAKD,EAG7Boc,GAAY,KAAOM,KAAkB5M,EAAMsL,GAK5C,IADAnb,EAAIyc,EAAWrd,OACPY,MACDD,EAAO0c,EAAWzc,MACtB6P,EAAOsM,EAAa9H,GAASsD,EAAM5X,GAASsc,EAAOrc,IAAM,KAE1D2X,EAAK9H,KAAUoH,EAAQpH,GAAQ9P,SAOlC0c,GAAab,EACZa,IAAexF,EACdwF,EAAWxG,OAAQsG,EAAaE,EAAWrd,QAC3Cqd,GAEGN,EACJA,EAAY,KAAMlF,EAASwF,EAAYtB,GAEvC7V,EAAKiE,MAAO0N,EAASwF,KAMzB,QAASC,GAAmB9B,GAwB3B,IAvBA,GAAI+B,GAAc7B,EAAS/E,EAC1BD,EAAM8E,EAAOxb,OACbwd,EAAkBtD,EAAKuD,SAAUjC,EAAO,GAAGvb,MAC3Cyd,EAAmBF,GAAmBtD,EAAKuD,SAAS,KACpD7c,EAAI4c,EAAkB,EAAI,EAG1BG,EAAelC,EAAe,SAAU9a,GACvC,MAAOA,KAAS4c,GACdG,GAAkB,GACrBE,EAAkBnC,EAAe,SAAU9a,GAC1C,MAAOsU,IAASsI,EAAc5c,GAAS,IACrC+c,GAAkB,GACrBrB,GAAa,SAAU1b,EAAM8E,EAASsW,GACrC,GAAIxY,IAASia,IAAqBzB,GAAOtW,IAAYoY,MACnDN,EAAe9X,GAASrF,SACxBud,EAAchd,EAAM8E,EAASsW,GAC7B6B,EAAiBjd,EAAM8E,EAASsW,GAGlC,OADAwB,GAAe,KACRha,IAGGmT,EAAJ9V,EAASA,IAChB,GAAM8a,EAAUxB,EAAKuD,SAAUjC,EAAO5a,GAAGX,MACxCoc,GAAaZ,EAAcW,EAAgBC,GAAYX,QACjD,CAIN,GAHAA,EAAUxB,EAAKlZ,OAAQwa,EAAO5a,GAAGX,MAAOkK,MAAO,KAAMqR,EAAO5a,GAAGwK,SAG1DsQ,EAAShY,GAAY,CAGzB,IADAiT,IAAM/V,EACM8V,EAAJC,IACFuD,EAAKuD,SAAUjC,EAAO7E,GAAG1W,MADd0W,KAKjB,MAAOiG,GACNhc,EAAI,GAAKwb,EAAgBC,GACzBzb,EAAI,GAAK8Y,EAER8B,EAAO/Q,MAAO,EAAG7J,EAAI,GAAI2D,QAASmE,MAAgC,MAAzB8S,EAAQ5a,EAAI,GAAIX,KAAe,IAAM,MAC7E0C,QAAS8S,GAAO,MAClBiG,EACI/E,EAAJ/V,GAAS0c,EAAmB9B,EAAO/Q,MAAO7J,EAAG+V,IACzCD,EAAJC,GAAW2G,EAAoB9B,EAASA,EAAO/Q,MAAOkM,IAClDD,EAAJC,GAAW+C,EAAY8B,IAGzBa,EAASnW,KAAMwV,GAIjB,MAAOU,GAAgBC,GAGxB,QAASyB,GAA0BC,EAAiBC,GACnD,GAAIC,GAAQD,EAAYhe,OAAS,EAChCke,EAAYH,EAAgB/d,OAAS,EACrCme,EAAe,SAAU5F,EAAM9S,EAASsW,EAAKlE,EAASuG,GACrD,GAAIzd,GAAMgW,EAAG+E,EACZ2C,EAAe,EACfzd,EAAI,IACJ6b,EAAYlE,MACZ+F,KACAC,EAAgBV,EAEhBlY,EAAQ4S,GAAQ2F,GAAahE,EAAKpT,KAAU,IAAG,IAAKsX,GAEpDI,EAAiBrC,GAA4B,MAAjBoC,EAAwB,EAAIjT,KAAK4L,UAAY,GACzER,EAAM/Q,EAAM3F,MAUb,KARKoe,IACJP,EAAmBpY,IAAYjG,GAAYiG,GAOpC7E,IAAM8V,GAA4B,OAApB/V,EAAOgF,EAAM/E,IAAaA,IAAM,CACrD,GAAKsd,GAAavd,EAAO,CAExB,IADAgW,EAAI,EACK+E,EAAUqC,EAAgBpH,MAClC,GAAK+E,EAAS/a,EAAM8E,EAASsW,GAAQ,CACpClE,EAAQ3R,KAAMvF,EACd,OAGGyd,IACJjC,EAAUqC,GAKPP,KAEEtd,GAAQ+a,GAAW/a,IACxB0d,IAII9F,GACJkE,EAAUvW,KAAMvF,IAOnB,GADA0d,GAAgBzd,EACXqd,GAASrd,IAAMyd,EAAe,CAElC,IADA1H,EAAI,EACK+E,EAAUsC,EAAYrH,MAC9B+E,EAASe,EAAW6B,EAAY7Y,EAASsW,EAG1C,IAAKxD,EAAO,CAEX,GAAK8F,EAAe,EACnB,KAAQzd,KACA6b,EAAU7b,IAAM0d,EAAW1d,KACjC0d,EAAW1d,GAAKmD,EAAIlD,KAAMgX,GAM7ByG,GAAa9B,EAAU8B,GAIxBpY,EAAKiE,MAAO0N,EAASyG,GAGhBF,IAAc7F,GAAQ+F,EAAWte,OAAS,GAC5Cqe,EAAeL,EAAYhe,OAAW,GAExCsY,EAAOmG,WAAY5G,GAUrB,MALKuG,KACJjC,EAAUqC,EACVX,EAAmBU,GAGb9B,EAGT,OAAOwB,GACN7D,EAAc+D,GACdA,EA50DF,GAAIvd,GACH+D,EACAuV,EACAwE,EACAC,EACApF,EACAqF,EACA7E,EACA8D,EACAgB,EACAC,EAGA/F,EACAvZ,EACAuf,EACA/F,EACAM,EACA0F,EACA5T,EACA+N,EAGAzV,EAAU,SAAW,EAAI,GAAI2U,MAC7BS,EAAenZ,EAAOH,SACtB2c,EAAU,EACV9M,EAAO,EACP4P,EAAajF,IACbkF,EAAalF,IACbmF,EAAgBnF,IAChBoF,EAAY,SAAUxE,EAAGC,GAIxB,MAHKD,KAAMC,IACViE,GAAe,GAET,GAIR9D,EAAe,GAAK,GAGpB5F,KAAcC,eACduC,KACA7T,EAAM6T,EAAI7T,IACVsb,EAAczH,EAAI1R,KAClBA,EAAO0R,EAAI1R,KACXuE,EAAQmN,EAAInN,MAGZwK,GAAU,SAAU9P,EAAMxE,GAGzB,IAFA,GAAIC,GAAI,EACP8V,EAAMvR,EAAKnF,OACA0W,EAAJ9V,EAASA,IAChB,GAAKuE,EAAKvE,KAAOD,EAChB,MAAOC,EAGT,OAAO,IAGR0e,GAAW,6HAKXC,GAAa,sBAEbC,GAAoB,mCAKpBC,GAAaD,GAAkB7c,QAAS,IAAK,MAG7C+c,GAAa,MAAQH,GAAa,KAAOC,GAAoB,OAASD,GAErE,gBAAkBA,GAElB,2DAA6DE,GAAa,OAASF,GACnF,OAEDI,GAAU,KAAOH,GAAoB,wFAKPE,GAAa,eAM3CE,GAAc,GAAIC,QAAQN,GAAa,IAAK,KAC5C9J,GAAQ,GAAIoK,QAAQ,IAAMN,GAAa,8BAAgCA,GAAa,KAAM,KAE1FO,GAAS,GAAID,QAAQ,IAAMN,GAAa,KAAOA,GAAa,KAC5DQ,GAAe,GAAIF,QAAQ,IAAMN,GAAa,WAAaA,GAAa,IAAMA,GAAa,KAE3FS,GAAmB,GAAIH,QAAQ,IAAMN,GAAa,iBAAmBA,GAAa,OAAQ,KAE1FU,GAAU,GAAIJ,QAAQF,IACtBO,GAAc,GAAIL,QAAQ,IAAMJ,GAAa,KAE7CU,IACCC,GAAM,GAAIP,QAAQ,MAAQL,GAAoB,KAC9Ca,MAAS,GAAIR,QAAQ,QAAUL,GAAoB,KACnDc,IAAO,GAAIT,QAAQ,KAAOL,GAAkB7c,QAAS,IAAK,MAAS,KACnE4d,KAAQ,GAAIV,QAAQ,IAAMH,IAC1Bc,OAAU,GAAIX,QAAQ,IAAMF,IAC5Bc,MAAS,GAAIZ,QAAQ,yDAA2DN,GAC/E,+BAAiCA,GAAa,cAAgBA,GAC9D,aAAeA,GAAa,SAAU,KACvCmB,KAAQ,GAAIb,QAAQ,OAASP,GAAW,KAAM,KAG9CqB,aAAgB,GAAId,QAAQ,IAAMN,GAAa,mDAC9CA,GAAa,mBAAqBA,GAAa,mBAAoB,MAGrEqB,GAAU,sCACVC,GAAU,SAEVC,GAAU,yBAGV7H,GAAa,mCAEbU,GAAW,OACXH,GAAU,QAGVuH,GAAY,GAAIlB,QAAQ,qBAAuBN,GAAa,MAAQA,GAAa,OAAQ,MACzFyB,GAAY,SAAUpf,EAAGqf,EAASC,GACjC,GAAIC,GAAO,KAAOF,EAAU,KAI5B,OAAOE,KAASA,GAAQD,EACvBD,EACO,EAAPE,EAECC,OAAOC,aAAcF,EAAO,OAE5BC,OAAOC,aAAcF,GAAQ,GAAK,MAAe,KAAPA,EAAe,QAO5DG,GAAgB,WACfvI,IAIF,KACC7S,EAAKiE,MACHyN,EAAMnN,EAAM5J,KAAMiY,EAAa9S,YAChC8S,EAAa9S,YAId4R,EAAKkB,EAAa9S,WAAWhG,QAASI,SACrC,MAAQ6C,IACTiD,GAASiE,MAAOyN,EAAI5X,OAGnB,SAAU0S,EAAQ6O,GACjBlC,EAAYlV,MAAOuI,EAAQjI,EAAM5J,KAAK0gB,KAKvC,SAAU7O,EAAQ6O,GAIjB,IAHA,GAAI5K,GAAIjE,EAAO1S,OACdY,EAAI,EAEI8R,EAAOiE,KAAO4K,EAAI3gB,OAC3B8R,EAAO1S,OAAS2W,EAAI,IAoQvBhS,EAAU2T,EAAO3T,WAOjBga,EAAQrG,EAAOqG,MAAQ,SAAUhe,GAGhC,GAAI8I,GAAkB9I,IAASA,EAAKiG,eAAiBjG,GAAM8I,eAC3D,OAAOA,GAA+C,SAA7BA,EAAgBxD,UAAsB,GAQhE8S,EAAcT,EAAOS,YAAc,SAAUyI,GAC5C,GAAIC,GAAYC,EACf3Y,EAAMyY,EAAOA,EAAK5a,eAAiB4a,EAAO1I,CAG3C,OAAK/P,KAAQvJ,GAA6B,IAAjBuJ,EAAI3I,UAAmB2I,EAAIU,iBAKpDjK,EAAWuJ,EACXgW,EAAUhW,EAAIU,gBACdiY,EAAS3Y,EAAIgM,YAMR2M,GAAUA,IAAWA,EAAOC,MAE3BD,EAAO3f,iBACX2f,EAAO3f,iBAAkB,SAAUuf,IAAe,GACvCI,EAAOE,aAClBF,EAAOE,YAAa,WAAYN,KAMlCtI,GAAkB2F,EAAO5V,GAQzBpE,EAAQ+a,WAAarF,EAAO,SAAUC,GAErC,MADAA,GAAIuH,UAAY,KACRvH,EAAIxX,aAAa,eAO1B6B,EAAQkB,qBAAuBwU,EAAO,SAAUC,GAE/C,MADAA,GAAI3T,YAAaoC,EAAI+Y,cAAc,MAC3BxH,EAAIzU,qBAAqB,KAAK7F,SAIvC2E,EAAQyU,uBAAyB0H,GAAQ/f,KAAMgI,EAAIqQ,wBAMnDzU,EAAQod,QAAU1H,EAAO,SAAUC,GAElC,MADAyE,GAAQpY,YAAa2T,GAAMzW,GAAKH,GACxBqF,EAAIiZ,oBAAsBjZ,EAAIiZ,kBAAmBte,GAAU1D,SAI/D2E,EAAQod,SACZ7H,EAAKpT,KAAS,GAAI,SAAUjD,EAAI4B,GAC/B,GAAuC,mBAA3BA,GAAQyT,gBAAkCF,EAAiB,CACtE,GAAIR,GAAI/S,EAAQyT,eAAgBrV,EAGhC,OAAO2U,IAAKA,EAAEnQ,YAAemQ,QAG/B0B,EAAKlZ,OAAW,GAAI,SAAU6C,GAC7B,GAAIoe,GAASpe,EAAGlB,QAASoe,GAAWC,GACpC,OAAO,UAAUrgB,GAChB,MAAOA,GAAKmC,aAAa,QAAUmf,YAM9B/H,GAAKpT,KAAS,GAErBoT,EAAKlZ,OAAW,GAAK,SAAU6C,GAC9B,GAAIoe,GAASpe,EAAGlB,QAASoe,GAAWC,GACpC,OAAO,UAAUrgB,GAChB,GAAI6gB,GAAwC,mBAA1B7gB,GAAKuhB,kBAAoCvhB,EAAKuhB,iBAAiB,KACjF,OAAOV,IAAQA,EAAK9Y,QAAUuZ,KAMjC/H,EAAKpT,KAAU,IAAInC,EAAQkB,qBAC1B,SAAUH,EAAKD,GACd,MAA6C,mBAAjCA,GAAQI,qBACZJ,EAAQI,qBAAsBH,GAG1Bf,EAAQ0U,IACZ5T,EAAQM,iBAAkBL,GAD3B,QAKR,SAAUA,EAAKD,GACd,GAAI9E,GACHoT,KACAnT,EAAI,EAEJiX,EAAUpS,EAAQI,qBAAsBH,EAGzC,IAAa,MAARA,EAAc,CAClB,KAAS/E,EAAOkX,EAAQjX,MACA,IAAlBD,EAAKP,UACT2T,EAAI7N,KAAMvF,EAIZ,OAAOoT,GAER,MAAO8D,IAITqC,EAAKpT,KAAY,MAAInC,EAAQyU,wBAA0B,SAAUyI,EAAWpc,GAC3E,MAAKuT,GACGvT,EAAQ2T,uBAAwByI,GADxC,QAWD7C,KAOA1F,MAEM3U,EAAQ0U,IAAMyH,GAAQ/f,KAAMgI,EAAIhD,qBAGrCsU,EAAO,SAAUC,GAMhByE,EAAQpY,YAAa2T,GAAM9R,UAAY,UAAY9E,EAAU,qBAC3CA,EAAU,iEAOvB4W,EAAIvU,iBAAiB,wBAAwB/F,QACjDsZ,EAAUpT,KAAM,SAAWqZ,GAAa,gBAKnCjF,EAAIvU,iBAAiB,cAAc/F,QACxCsZ,EAAUpT,KAAM,MAAQqZ,GAAa,aAAeD,GAAW,KAI1DhF,EAAIvU,iBAAkB,QAAUrC,EAAU,MAAO1D,QACtDsZ,EAAUpT,KAAK,MAMVoU,EAAIvU,iBAAiB,YAAY/F,QACtCsZ,EAAUpT,KAAK,YAMVoU,EAAIvU,iBAAkB,KAAOrC,EAAU,MAAO1D,QACnDsZ,EAAUpT,KAAK,cAIjBmU,EAAO,SAAUC,GAGhB,GAAI6H,GAAQpZ,EAAIxD,cAAc,QAC9B4c,GAAM1I,aAAc,OAAQ,UAC5Ba,EAAI3T,YAAawb,GAAQ1I,aAAc,OAAQ,KAI1Ca,EAAIvU,iBAAiB,YAAY/F,QACrCsZ,EAAUpT,KAAM,OAASqZ,GAAa,eAKjCjF,EAAIvU,iBAAiB,YAAY/F,QACtCsZ,EAAUpT,KAAM,WAAY,aAI7BoU,EAAIvU,iBAAiB,QACrBuT,EAAUpT,KAAK,YAIXvB,EAAQyd,gBAAkBtB,GAAQ/f,KAAOqK,EAAU2T,EAAQ3T,SAChE2T,EAAQsD,uBACRtD,EAAQuD,oBACRvD,EAAQwD,kBACRxD,EAAQyD,qBAERnI,EAAO,SAAUC,GAGhB3V,EAAQ8d,kBAAoBrX,EAAQvK,KAAMyZ,EAAK,OAI/ClP,EAAQvK,KAAMyZ,EAAK,aACnB0E,EAAc9Y,KAAM,KAAMyZ,MAI5BrG,EAAYA,EAAUtZ,QAAU,GAAI6f,QAAQvG,EAAUO,KAAK,MAC3DmF,EAAgBA,EAAchf,QAAU,GAAI6f,QAAQb,EAAcnF,KAAK,MAIvE4H,EAAaX,GAAQ/f,KAAMge,EAAQ2D,yBAKnCvJ,EAAWsI,GAAcX,GAAQ/f,KAAMge,EAAQ5F,UAC9C,SAAUyB,EAAGC,GACZ,GAAI8H,GAAuB,IAAf/H,EAAExa,SAAiBwa,EAAEnR,gBAAkBmR,EAClDgI,EAAM/H,GAAKA,EAAExS,UACd,OAAOuS,KAAMgI,MAAWA,GAAwB,IAAjBA,EAAIxiB,YAClCuiB,EAAMxJ,SACLwJ,EAAMxJ,SAAUyJ,GAChBhI,EAAE8H,yBAA8D,GAAnC9H,EAAE8H,wBAAyBE,MAG3D,SAAUhI,EAAGC,GACZ,GAAKA,EACJ,KAASA,EAAIA,EAAExS,YACd,GAAKwS,IAAMD,EACV,OAAO,CAIV,QAAO,GAOTwE,EAAYqC,EACZ,SAAU7G,EAAGC,GAGZ,GAAKD,IAAMC,EAEV,MADAiE,IAAe,EACR,CAIR,IAAI+D,IAAWjI,EAAE8H,yBAA2B7H,EAAE6H,uBAC9C,OAAKG,GACGA,GAIRA,GAAYjI,EAAEhU,eAAiBgU,MAAUC,EAAEjU,eAAiBiU,GAC3DD,EAAE8H,wBAAyB7H,GAG3B,EAGc,EAAVgI,IACFle,EAAQme,cAAgBjI,EAAE6H,wBAAyB9H,KAAQiI,EAGxDjI,IAAM7R,GAAO6R,EAAEhU,gBAAkBkS,GAAgBK,EAASL,EAAc8B,GACrE,GAEHC,IAAM9R,GAAO8R,EAAEjU,gBAAkBkS,GAAgBK,EAASL,EAAc+B,GACrE,EAIDgE,EACJ5J,GAAS4J,EAAWjE,GAAM3F,GAAS4J,EAAWhE,GAChD,EAGe,EAAVgI,EAAc,GAAK,IAE3B,SAAUjI,EAAGC,GAEZ,GAAKD,IAAMC,EAEV,MADAiE,IAAe,EACR,CAGR,IAAI3d,GACHP,EAAI,EACJmiB,EAAMnI,EAAEvS,WACRua,EAAM/H,EAAExS,WACR2a,GAAOpI,GACPqI,GAAOpI,EAGR,KAAMkI,IAAQH,EACb,MAAOhI,KAAM7R,EAAM,GAClB8R,IAAM9R,EAAM,EACZga,EAAM,GACNH,EAAM,EACN/D,EACE5J,GAAS4J,EAAWjE,GAAM3F,GAAS4J,EAAWhE,GAChD,CAGK,IAAKkI,IAAQH,EACnB,MAAOjI,GAAcC,EAAGC,EAKzB,KADA1Z,EAAMyZ,EACGzZ,EAAMA,EAAIkH,YAClB2a,EAAGhR,QAAS7Q,EAGb,KADAA,EAAM0Z,EACG1Z,EAAMA,EAAIkH,YAClB4a,EAAGjR,QAAS7Q,EAIb,MAAQ6hB,EAAGpiB,KAAOqiB,EAAGriB,IACpBA,GAGD,OAAOA,GAEN+Z,EAAcqI,EAAGpiB,GAAIqiB,EAAGriB,IAGxBoiB,EAAGpiB,KAAOkY,EAAe,GACzBmK,EAAGriB,KAAOkY,EAAe,EACzB,GAGK/P,GA1WCvJ,GA6WT8Y,EAAOlN,QAAU,SAAU8X,EAAM5iB,GAChC,MAAOgY,GAAQ4K,EAAM,KAAM,KAAM5iB,IAGlCgY,EAAO8J,gBAAkB,SAAUzhB,EAAMuiB,GASxC,IAPOviB,EAAKiG,eAAiBjG,KAAWnB,GACvCuZ,EAAapY,GAIduiB,EAAOA,EAAKvgB,QAASqd,GAAkB,aAElCrb,EAAQyd,kBAAmBpJ,GAC5BgG,GAAkBA,EAAcje,KAAMmiB,IACtC5J,GAAkBA,EAAUvY,KAAMmiB,IAErC,IACC,GAAI3f,GAAM6H,EAAQvK,KAAMF,EAAMuiB,EAG9B,IAAK3f,GAAOoB,EAAQ8d,mBAGlB9hB,EAAKnB,UAAuC,KAA3BmB,EAAKnB,SAASY,SAChC,MAAOmD,GAEP,MAAON,IAGV,MAAOqV,GAAQ4K,EAAM1jB,EAAU,MAAQmB,IAASX,OAAS,GAG1DsY,EAAOa,SAAW,SAAU1T,EAAS9E,GAKpC,OAHO8E,EAAQmB,eAAiBnB,KAAcjG,GAC7CuZ,EAAatT,GAEP0T,EAAU1T,EAAS9E,IAG3B2X,EAAOvR,KAAO,SAAUpG,EAAM+B,IAEtB/B,EAAKiG,eAAiBjG,KAAWnB,GACvCuZ,EAAapY,EAGd,IAAI6U,GAAK0E,EAAKQ,WAAYhY,EAAKG,eAE9B+I,EAAM4J,GAAMJ,EAAOvU,KAAMqZ,EAAKQ,WAAYhY,EAAKG,eAC9C2S,EAAI7U,EAAM+B,GAAOsW,GACjBvW,MAEF,OAAeA,UAARmJ,EACNA,EACAjH,EAAQ+a,aAAe1G,EACtBrY,EAAKmC,aAAcJ,IAClBkJ,EAAMjL,EAAKuhB,iBAAiBxf,KAAUkJ,EAAIuX,UAC1CvX,EAAIlD,MACJ,MAGJ4P,EAAOlE,MAAQ,SAAUgD,GACxB,KAAM,IAAI1X,OAAO,0CAA4C0X,IAO9DkB,EAAOmG,WAAa,SAAU5G,GAC7B,GAAIlX,GACHyiB,KACAzM,EAAI,EACJ/V,EAAI,CAOL,IAJAke,GAAgBna,EAAQ0e,iBACxBxE,GAAala,EAAQ2e,YAAczL,EAAQpN,MAAO,GAClDoN,EAAQjB,KAAMwI,GAETN,EAAe,CACnB,KAASne,EAAOkX,EAAQjX,MAClBD,IAASkX,EAASjX,KACtB+V,EAAIyM,EAAWld,KAAMtF,GAGvB,MAAQ+V,KACPkB,EAAQhB,OAAQuM,EAAYzM,GAAK,GAQnC,MAFAkI,GAAY,KAELhH,GAOR6G,EAAUpG,EAAOoG,QAAU,SAAU/d,GACpC,GAAI6gB,GACHje,EAAM,GACN3C,EAAI,EACJR,EAAWO,EAAKP,QAEjB,IAAMA,GAMC,GAAkB,IAAbA,GAA+B,IAAbA,GAA+B,KAAbA,EAAkB,CAGjE,GAAiC,gBAArBO,GAAK4iB,YAChB,MAAO5iB,GAAK4iB,WAGZ,KAAM5iB,EAAOA,EAAK+F,WAAY/F,EAAMA,EAAOA,EAAKsa,YAC/C1X,GAAOmb,EAAS/d,OAGZ,IAAkB,IAAbP,GAA+B,IAAbA,EAC7B,MAAOO,GAAK6iB,cAhBZ,MAAShC,EAAO7gB,EAAKC,MAEpB2C,GAAOmb,EAAS8C,EAkBlB,OAAOje,IAGR2W,EAAO5B,EAAOmL,WAGbtJ,YAAa,GAEbuJ,aAActJ,EAEd1Y,MAAOye,GAEPzF,cAEA5T,QAEA2W,UACCkG,KAAOviB,IAAK,aAAcmV,OAAO,GACjCqN,KAAOxiB,IAAK,cACZyiB,KAAOziB,IAAK,kBAAmBmV,OAAO,GACtCuN,KAAO1iB,IAAK,oBAGbyb,WACC0D,KAAQ,SAAU7e,GAUjB,MATAA,GAAM,GAAKA,EAAM,GAAGiB,QAASoe,GAAWC,IAGxCtf,EAAM,IAAOA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAM,IAAKiB,QAASoe,GAAWC,IAExD,OAAbtf,EAAM,KACVA,EAAM,GAAK,IAAMA,EAAM,GAAK,KAGtBA,EAAM+I,MAAO,EAAG,IAGxBgW,MAAS,SAAU/e,GA6BlB,MAlBAA,GAAM,GAAKA,EAAM,GAAGmB,cAEY,QAA3BnB,EAAM,GAAG+I,MAAO,EAAG,IAEjB/I,EAAM,IACX4W,EAAOlE,MAAO1S,EAAM,IAKrBA,EAAM,KAAQA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAAK,GAAmB,SAAbA,EAAM,IAA8B,QAAbA,EAAM,KACzFA,EAAM,KAAUA,EAAM,GAAKA,EAAM,IAAqB,QAAbA,EAAM,KAGpCA,EAAM,IACjB4W,EAAOlE,MAAO1S,EAAM,IAGdA,GAGR8e,OAAU,SAAU9e,GACnB,GAAIqiB,GACHC,GAAYtiB,EAAM,IAAMA,EAAM,EAE/B,OAAKye,IAAiB,MAAEpf,KAAMW,EAAM,IAC5B,MAIHA,EAAM,GACVA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAGxBsiB,GAAY/D,GAAQlf,KAAMijB,KAEpCD,EAASxK,EAAUyK,GAAU,MAE7BD,EAASC,EAAS/O,QAAS,IAAK+O,EAAShkB,OAAS+jB,GAAWC,EAAShkB,UAGvE0B,EAAM,GAAKA,EAAM,GAAG+I,MAAO,EAAGsZ,GAC9BriB,EAAM,GAAKsiB,EAASvZ,MAAO,EAAGsZ,IAIxBriB,EAAM+I,MAAO,EAAG,MAIzBzJ,QAECsf,IAAO,SAAU2D,GAChB,GAAIhe,GAAWge,EAAiBthB,QAASoe,GAAWC,IAAYne,aAChE,OAA4B,MAArBohB,EACN,WAAa,OAAO,GACpB,SAAUtjB,GACT,MAAOA,GAAKsF,UAAYtF,EAAKsF,SAASpD,gBAAkBoD,IAI3Doa,MAAS,SAAUwB,GAClB,GAAIqC,GAAUjF,EAAY4C,EAAY,IAEtC,OAAOqC,KACLA,EAAU,GAAIrE,QAAQ,MAAQN,GAAa,IAAMsC,EAAY,IAAMtC,GAAa,SACjFN,EAAY4C,EAAW,SAAUlhB,GAChC,MAAOujB,GAAQnjB,KAAgC,gBAAnBJ,GAAKkhB,WAA0BlhB,EAAKkhB,WAA0C,mBAAtBlhB,GAAKmC,cAAgCnC,EAAKmC,aAAa,UAAY,OAI1Jyd,KAAQ,SAAU7d,EAAMyhB,EAAUC,GACjC,MAAO,UAAUzjB,GAChB,GAAIoP,GAASuI,EAAOvR,KAAMpG,EAAM+B,EAEhC,OAAe,OAAVqN,EACgB,OAAboU,EAEFA,GAINpU,GAAU,GAEU,MAAboU,EAAmBpU,IAAWqU,EACvB,OAAbD,EAAoBpU,IAAWqU,EAClB,OAAbD,EAAoBC,GAAqC,IAA5BrU,EAAOkF,QAASmP,GAChC,OAAbD,EAAoBC,GAASrU,EAAOkF,QAASmP,GAAU,GAC1C,OAAbD,EAAoBC,GAASrU,EAAOtF,OAAQ2Z,EAAMpkB,UAAaokB,EAClD,OAAbD,GAAsB,IAAMpU,EAAOpN,QAASid,GAAa,KAAQ,KAAM3K,QAASmP,GAAU,GAC7E,OAAbD,EAAoBpU,IAAWqU,GAASrU,EAAOtF,MAAO,EAAG2Z,EAAMpkB,OAAS,KAAQokB,EAAQ,KACxF,IAZO,IAgBV3D,MAAS,SAAUxgB,EAAMokB,EAAMhJ,EAAU9E,EAAOE,GAC/C,GAAI6N,GAAgC,QAAvBrkB,EAAKwK,MAAO,EAAG,GAC3B8Z,EAA+B,SAArBtkB,EAAKwK,MAAO,IACtB+Z,EAAkB,YAATH,CAEV,OAAiB,KAAV9N,GAAwB,IAATE,EAGrB,SAAU9V,GACT,QAASA,EAAK0H,YAGf,SAAU1H,EAAM8E,EAASsW,GACxB,GAAInY,GAAOqY,EAAYuF,EAAM1G,EAAM2J,EAAWjV,EAC7CpO,EAAMkjB,IAAWC,EAAU,cAAgB,kBAC3C7C,EAAS/gB,EAAK0H,WACd3F,EAAO8hB,GAAU7jB,EAAKsF,SAASpD,cAC/B6hB,GAAY3I,IAAQyI,CAErB,IAAK9C,EAAS,CAGb,GAAK4C,EAAS,CACb,KAAQljB,GAAM,CAEb,IADAogB,EAAO7gB,EACE6gB,EAAOA,EAAMpgB,IACrB,GAAKojB,EAAShD,EAAKvb,SAASpD,gBAAkBH,EAAyB,IAAlB8e,EAAKphB,SACzD,OAAO,CAIToP,GAAQpO,EAAe,SAATnB,IAAoBuP,GAAS,cAE5C,OAAO,EAMR,GAHAA,GAAU+U,EAAU7C,EAAOhb,WAAagb,EAAOiD,WAG1CJ,GAAWG,GAQf,IANAzI,EAAayF,EAAQhe,KAAcge,EAAQhe,OAC3CE,EAAQqY,EAAYhc,OACpBwkB,EAAY7gB,EAAM,KAAOuY,GAAWvY,EAAM,GAC1CkX,EAAOlX,EAAM,KAAOuY,GAAWvY,EAAM,GACrC4d,EAAOiD,GAAa/C,EAAO1b,WAAYye,GAE9BjD,IAASiD,GAAajD,GAAQA,EAAMpgB,KAG3C0Z,EAAO2J,EAAY,IAAMjV,EAAMzL,OAGhC,GAAuB,IAAlByd,EAAKphB,YAAoB0a,GAAQ0G,IAAS7gB,EAAO,CACrDsb,EAAYhc,IAAWkc,EAASsI,EAAW3J,EAC3C,YAKI,IAAK4J,IAAa9gB,GAASjD,EAAM+C,KAAc/C,EAAM+C,QAAkBzD,KAAW2D,EAAM,KAAOuY,EACrGrB,EAAOlX,EAAM,OAKb,OAAS4d,IAASiD,GAAajD,GAAQA,EAAMpgB,KAC3C0Z,EAAO2J,EAAY,IAAMjV,EAAMzL,UAEzBygB,EAAShD,EAAKvb,SAASpD,gBAAkBH,EAAyB,IAAlB8e,EAAKphB,cAAsB0a,IAE5E4J,KACHlD,EAAM9d,KAAc8d,EAAM9d,QAAkBzD,IAAWkc,EAASrB,IAG7D0G,IAAS7gB,MASjB,MADAma,IAAQrE,EACDqE,IAASvE,GAAWuE,EAAOvE,IAAU,GAAKuE,EAAOvE,GAAS,KAKrEiK,OAAU,SAAUoE,EAAQvJ,GAK3B,GAAI/E,GACHd,EAAK0E,EAAKyF,QAASiF,IAAY1K,EAAKqB,WAAYqJ,EAAO/hB,gBACtDyV,EAAOlE,MAAO,uBAAyBwQ,EAKzC,OAAKpP,GAAI9R,GACD8R,EAAI6F,GAIP7F,EAAGxV,OAAS,GAChBsW,GAASsO,EAAQA,EAAQ,GAAIvJ,GACtBnB,EAAKqB,WAAWlG,eAAgBuP,EAAO/hB,eAC7CuX,EAAa,SAAU7B,EAAMnN,GAI5B,IAHA,GAAIyZ,GACHC,EAAUtP,EAAI+C,EAAM8C,GACpBza,EAAIkkB,EAAQ9kB,OACLY,KACPikB,EAAM5P,GAASsD,EAAMuM,EAAQlkB,IAC7B2X,EAAMsM,KAAWzZ,EAASyZ,GAAQC,EAAQlkB,MAG5C,SAAUD,GACT,MAAO6U,GAAI7U,EAAM,EAAG2V,KAIhBd,IAITmK,SAECnf,IAAO4Z,EAAa,SAAU7E,GAI7B,GAAI4M,MACHtK,KACA6D,EAAUkD,EAASrJ,EAAS5S,QAAS8S,GAAO,MAE7C,OAAOiG,GAAShY,GACf0W,EAAa,SAAU7B,EAAMnN,EAAS3F,EAASsW,GAM9C,IALA,GAAIpb,GACH8b,EAAYf,EAASnD,EAAM,KAAMwD,MACjCnb,EAAI2X,EAAKvY,OAGFY,MACDD,EAAO8b,EAAU7b,MACtB2X,EAAK3X,KAAOwK,EAAQxK,GAAKD,MAI5B,SAAUA,EAAM8E,EAASsW,GAKxB,MAJAoG,GAAM,GAAKxhB,EACX+a,EAASyG,EAAO,KAAMpG,EAAKlE,GAE3BsK,EAAM,GAAK,MACHtK,EAAQ9T,SAInBghB,IAAO3K,EAAa,SAAU7E,GAC7B,MAAO,UAAU5U,GAChB,MAAO2X,GAAQ/C,EAAU5U,GAAOX,OAAS,KAI3CmZ,SAAYiB,EAAa,SAAUhS,GAElC,MADAA,GAAOA,EAAKzF,QAASoe,GAAWC,IACzB,SAAUrgB,GAChB,OAASA,EAAK4iB,aAAe5iB,EAAKqkB,WAAatG,EAAS/d,IAASsU,QAAS7M,GAAS,MAWrF6c,KAAQ7K,EAAc,SAAU6K,GAM/B,MAJM/E,IAAYnf,KAAKkkB,GAAQ,KAC9B3M,EAAOlE,MAAO,qBAAuB6Q,GAEtCA,EAAOA,EAAKtiB,QAASoe,GAAWC,IAAYne,cACrC,SAAUlC,GAChB,GAAIukB,EACJ,GACC,IAAMA,EAAWlM,EAChBrY,EAAKskB,KACLtkB,EAAKmC,aAAa,aAAenC,EAAKmC,aAAa,QAGnD,MADAoiB,GAAWA,EAASriB,cACbqiB,IAAaD,GAA2C,IAAnCC,EAASjQ,QAASgQ,EAAO,YAE5CtkB,EAAOA,EAAK0H,aAAiC,IAAlB1H,EAAKP,SAC3C,QAAO,KAKTsS,OAAU,SAAU/R,GACnB,GAAIwkB,GAAOxlB,EAAOylB,UAAYzlB,EAAOylB,SAASD,IAC9C,OAAOA,IAAQA,EAAK1a,MAAO,KAAQ9J,EAAKkD,IAGzCwhB,KAAQ,SAAU1kB,GACjB,MAAOA,KAASoe,GAGjBuG,MAAS,SAAU3kB,GAClB,MAAOA,KAASnB,EAASwF,iBAAmBxF,EAAS+lB,UAAY/lB,EAAS+lB,gBAAkB5kB,EAAKV,MAAQU,EAAK6kB,OAAS7kB,EAAK8kB,WAI7HC,QAAW,SAAU/kB,GACpB,MAAOA,GAAKglB,YAAa,GAG1BA,SAAY,SAAUhlB,GACrB,MAAOA,GAAKglB,YAAa,GAG1Bpf,QAAW,SAAU5F,GAGpB,GAAIsF,GAAWtF,EAAKsF,SAASpD,aAC7B,OAAqB,UAAboD,KAA0BtF,EAAK4F,SAA0B,WAAbN,KAA2BtF,EAAKiI,UAGrFA,SAAY,SAAUjI,GAOrB,MAJKA,GAAK0H,YACT1H,EAAK0H,WAAWud,cAGVjlB,EAAKiI,YAAa,GAI1B+F,MAAS,SAAUhO,GAKlB,IAAMA,EAAOA,EAAK+F,WAAY/F,EAAMA,EAAOA,EAAKsa,YAC/C,GAAKta,EAAKP,SAAW,EACpB,OAAO,CAGT,QAAO,GAGRshB,OAAU,SAAU/gB,GACnB,OAAQuZ,EAAKyF,QAAe,MAAGhf,IAIhCklB,OAAU,SAAUllB,GACnB,MAAOkgB,IAAQ9f,KAAMJ,EAAKsF,WAG3Bkc,MAAS,SAAUxhB,GAClB,MAAOigB,IAAQ7f,KAAMJ,EAAKsF,WAG3B6f,OAAU,SAAUnlB,GACnB,GAAI+B,GAAO/B,EAAKsF,SAASpD,aACzB,OAAgB,UAATH,GAAkC,WAAd/B,EAAKV,MAA8B,WAATyC,GAGtD0F,KAAQ,SAAUzH,GACjB,GAAIoG,EACJ,OAAuC,UAAhCpG,EAAKsF,SAASpD,eACN,SAAdlC,EAAKV,OAImC,OAArC8G,EAAOpG,EAAKmC,aAAa,UAA2C,SAAvBiE,EAAKlE,gBAIvD0T,MAAS6E,EAAuB,WAC/B,OAAS,KAGV3E,KAAQ2E,EAAuB,SAAUE,EAActb,GACtD,OAASA,EAAS,KAGnBwW,GAAM4E,EAAuB,SAAUE,EAActb,EAAQqb,GAC5D,OAAoB,EAAXA,EAAeA,EAAWrb,EAASqb,KAG7C0K,KAAQ3K,EAAuB,SAAUE,EAActb,GAEtD,IADA,GAAIY,GAAI,EACIZ,EAAJY,EAAYA,GAAK,EACxB0a,EAAapV,KAAMtF,EAEpB,OAAO0a,KAGR0K,IAAO5K,EAAuB,SAAUE,EAActb,GAErD,IADA,GAAIY,GAAI,EACIZ,EAAJY,EAAYA,GAAK,EACxB0a,EAAapV,KAAMtF,EAEpB,OAAO0a,KAGR2K,GAAM7K,EAAuB,SAAUE,EAActb,EAAQqb,GAE5D,IADA,GAAIza,GAAe,EAAXya,EAAeA,EAAWrb,EAASqb,IACjCza,GAAK,GACd0a,EAAapV,KAAMtF,EAEpB,OAAO0a,KAGR4K,GAAM9K,EAAuB,SAAUE,EAActb,EAAQqb,GAE5D,IADA,GAAIza,GAAe,EAAXya,EAAeA,EAAWrb,EAASqb,IACjCza,EAAIZ,GACbsb,EAAapV,KAAMtF,EAEpB,OAAO0a,OAKVpB,EAAKyF,QAAa,IAAIzF,EAAKyF,QAAY,EAGvC,KAAM/e,KAAOulB,OAAO,EAAMC,UAAU,EAAMC,MAAM,EAAMC,UAAU,EAAMC,OAAO,GAC5ErM,EAAKyF,QAAS/e,GAAMsa,EAAmBta,EAExC,KAAMA,KAAO4lB,QAAQ,EAAMC,OAAO,GACjCvM,EAAKyF,QAAS/e,GAAMua,EAAoBva,EA4lBzC,OAvlBA2a,GAAW3O,UAAYsN,EAAKwM,QAAUxM,EAAKyF,QAC3CzF,EAAKqB,WAAa,GAAIA,GAEtBhC,EAAWjB,EAAOiB,SAAW,SAAUhE,EAAUoR,GAChD,GAAI7B,GAASpjB,EAAO8Z,EAAQvb,EAC3B2mB,EAAOnO,EAAQoO,EACfC,EAAS5H,EAAY3J,EAAW,IAEjC,IAAKuR,EACJ,MAAOH,GAAY,EAAIG,EAAOrc,MAAO,EAOtC,KAJAmc,EAAQrR,EACRkD,KACAoO,EAAa3M,EAAK2C,UAEV+J,GAAQ,GAGT9B,IAAYpjB,EAAQoe,GAAO5Y,KAAM0f,OACjCllB,IAEJklB,EAAQA,EAAMnc,MAAO/I,EAAM,GAAG1B,SAAY4mB,GAE3CnO,EAAOvS,KAAOsV,OAGfsJ,GAAU,GAGJpjB,EAAQqe,GAAa7Y,KAAM0f,MAChC9B,EAAUpjB,EAAM2R,QAChBmI,EAAOtV,MACNwC,MAAOoc,EAEP7kB,KAAMyB,EAAM,GAAGiB,QAAS8S,GAAO,OAEhCmR,EAAQA,EAAMnc,MAAOqa,EAAQ9kB,QAI9B,KAAMC,IAAQia,GAAKlZ,SACZU,EAAQye,GAAWlgB,GAAOiH,KAAM0f,KAAcC,EAAY5mB,MAC9DyB,EAAQmlB,EAAY5mB,GAAQyB,MAC7BojB,EAAUpjB,EAAM2R;AAChBmI,EAAOtV,MACNwC,MAAOoc,EACP7kB,KAAMA,EACNmL,QAAS1J,IAEVklB,EAAQA,EAAMnc,MAAOqa,EAAQ9kB,QAI/B,KAAM8kB,EACL,MAOF,MAAO6B,GACNC,EAAM5mB,OACN4mB,EACCtO,EAAOlE,MAAOmB,GAEd2J,EAAY3J,EAAUkD,GAAShO,MAAO,IAwWzCmU,EAAUtG,EAAOsG,QAAU,SAAUrJ,EAAU7T,GAC9C,GAAId,GACHod,KACAD,KACA+I,EAAS3H,EAAe5J,EAAW,IAEpC,KAAMuR,EAAS,CAMd,IAJMplB,IACLA,EAAQ6X,EAAUhE,IAEnB3U,EAAIc,EAAM1B,OACFY,KACPkmB,EAASxJ,EAAmB5b,EAAMd,IAC7BkmB,EAAQpjB,GACZsa,EAAY9X,KAAM4gB,GAElB/I,EAAgB7X,KAAM4gB,EAKxBA,GAAS3H,EAAe5J,EAAUuI,EAA0BC,EAAiBC,IAG7E8I,EAAOvR,SAAWA,EAEnB,MAAOuR,IAYR/M,EAASzB,EAAOyB,OAAS,SAAUxE,EAAU9P,EAASoS,EAASU,GAC9D,GAAI3X,GAAG4a,EAAQuL,EAAO9mB,EAAM6G,EAC3BkgB,EAA+B,kBAAbzR,IAA2BA,EAC7C7T,GAAS6W,GAAQgB,EAAWhE,EAAWyR,EAASzR,UAAYA,EAK7D,IAHAsC,EAAUA,MAGY,IAAjBnW,EAAM1B,OAAe,CAIzB,GADAwb,EAAS9Z,EAAM,GAAKA,EAAM,GAAG+I,MAAO,GAC/B+Q,EAAOxb,OAAS,GAAkC,QAA5B+mB,EAAQvL,EAAO,IAAIvb,MAC5C0E,EAAQod,SAAgC,IAArBtc,EAAQrF,UAAkB4Y,GAC7CkB,EAAKuD,SAAUjC,EAAO,GAAGvb,MAAS,CAGnC,GADAwF,GAAYyU,EAAKpT,KAAS,GAAGigB,EAAM3b,QAAQ,GAAGzI,QAAQoe,GAAWC,IAAYvb,QAAkB,IACzFA,EACL,MAAOoS,EAGImP,KACXvhB,EAAUA,EAAQ4C,YAGnBkN,EAAWA,EAAS9K,MAAO+Q,EAAOnI,QAAQ3K,MAAM1I,QAKjD,IADAY,EAAIuf,GAAwB,aAAEpf,KAAMwU,GAAa,EAAIiG,EAAOxb,OACpDY,MACPmmB,EAAQvL,EAAO5a,IAGVsZ,EAAKuD,SAAWxd,EAAO8mB,EAAM9mB,QAGlC,IAAM6G,EAAOoT,EAAKpT,KAAM7G,MAEjBsY,EAAOzR,EACZigB,EAAM3b,QAAQ,GAAGzI,QAASoe,GAAWC,IACrCrH,GAAS5Y,KAAMya,EAAO,GAAGvb,OAAU2Z,EAAanU,EAAQ4C,aAAgB5C,IACpE,CAKJ,GAFA+V,EAAO3E,OAAQjW,EAAG,GAClB2U,EAAWgD,EAAKvY,QAAU0Z,EAAY8B,IAChCjG,EAEL,MADArP,GAAKiE,MAAO0N,EAASU,GACdV,CAGR,QAeJ,OAPEmP,GAAYpI,EAASrJ,EAAU7T,IAChC6W,EACA9S,GACCuT,EACDnB,EACA8B,GAAS5Y,KAAMwU,IAAcqE,EAAanU,EAAQ4C,aAAgB5C,GAE5DoS,GAMRlT,EAAQ2e,WAAa5f,EAAQe,MAAM,IAAImS,KAAMwI,GAAYvF,KAAK,MAAQnW,EAItEiB,EAAQ0e,mBAAqBvE,EAG7B/F,IAIApU,EAAQme,aAAezI,EAAO,SAAU4M,GAEvC,MAAuE,GAAhEA,EAAKvE,wBAAyBljB,EAAS+F,cAAc,UAMvD8U,EAAO,SAAUC,GAEtB,MADAA,GAAI9R,UAAY,mBAC+B,MAAxC8R,EAAI5T,WAAW5D,aAAa,WAEnC0X,EAAW,yBAA0B,SAAU7Z,EAAM+B,EAAMic,GAC1D,MAAMA,GAAN,OACQhe,EAAKmC,aAAcJ,EAA6B,SAAvBA,EAAKG,cAA2B,EAAI,KAOjE8B,EAAQ+a,YAAerF,EAAO,SAAUC,GAG7C,MAFAA,GAAI9R,UAAY,WAChB8R,EAAI5T,WAAW+S,aAAc,QAAS,IACY,KAA3Ca,EAAI5T,WAAW5D,aAAc,YAEpC0X,EAAW,QAAS,SAAU7Z,EAAM+B,EAAMic,GACzC,MAAMA,IAAyC,UAAhChe,EAAKsF,SAASpD,cAA7B,OACQlC,EAAKkI,eAOTwR,EAAO,SAAUC,GACtB,MAAuC,OAAhCA,EAAIxX,aAAa,eAExB0X,EAAW8E,GAAU,SAAU3e,EAAM+B,EAAMic,GAC1C,GAAI/S,EACJ,OAAM+S,GAAN,OACQhe,EAAM+B,MAAW,EAAOA,EAAKG,eACjC+I,EAAMjL,EAAKuhB,iBAAkBxf,KAAWkJ,EAAIuX,UAC7CvX,EAAIlD,MACL,OAKG4P,GAEH3Y,EAIJO,IAAO4G,KAAOwR,GACdpY,GAAOgjB,KAAO5K,GAAOmL,UACrBvjB,GAAOgjB,KAAK,KAAOhjB,GAAOgjB,KAAKvD,QAC/Bzf,GAAOgnB,OAAS5O,GAAOmG,WACvBve,GAAOkI,KAAOkQ,GAAOoG,QACrBxe,GAAOinB,SAAW7O,GAAOqG,MACzBze,GAAOiZ,SAAWb,GAAOa,QAIzB,IAAIiO,IAAgBlnB,GAAOgjB,KAAKxhB,MAAMif,aAElC0G,GAAa,6BAIbvmB,GAAY,gBAgChBZ,IAAOc,OAAS,SAAUkiB,EAAMvd,EAAOnF,GACtC,GAAIG,GAAOgF,EAAO,EAMlB,OAJKnF,KACJ0iB,EAAO,QAAUA,EAAO,KAGD,IAAjBvd,EAAM3F,QAAkC,IAAlBW,EAAKP,SACjCF,GAAO4G,KAAKsb,gBAAiBzhB,EAAMuiB,IAAWviB,MAC9CT,GAAO4G,KAAKsE,QAAS8X,EAAMhjB,GAAOQ,KAAMiF,EAAO,SAAUhF,GACxD,MAAyB,KAAlBA,EAAKP,aAIfF,GAAOsV,GAAGrR,QACT2C,KAAM,SAAUyO,GACf,GAAI3U,GACH2C,KACA+jB,EAAO1nB,KACP8W,EAAM4Q,EAAKtnB,MAEZ,IAAyB,gBAAbuV,GACX,MAAO3V,MAAKuW,UAAWjW,GAAQqV,GAAWvU,OAAO,WAChD,IAAMJ,EAAI,EAAO8V,EAAJ9V,EAASA,IACrB,GAAKV,GAAOiZ,SAAUmO,EAAM1mB,GAAKhB,MAChC,OAAO,IAMX,KAAMgB,EAAI,EAAO8V,EAAJ9V,EAASA,IACrBV,GAAO4G,KAAMyO,EAAU+R,EAAM1mB,GAAK2C,EAMnC,OAFAA,GAAM3D,KAAKuW,UAAWO,EAAM,EAAIxW,GAAOgnB,OAAQ3jB,GAAQA,GACvDA,EAAIgS,SAAW3V,KAAK2V,SAAW3V,KAAK2V,SAAW,IAAMA,EAAWA,EACzDhS,GAERvC,OAAQ,SAAUuU,GACjB,MAAO3V,MAAKuW,UAAW9V,EAAOT,KAAM2V,OAAgB,KAErD/U,IAAK,SAAU+U,GACd,MAAO3V,MAAKuW,UAAW9V,EAAOT,KAAM2V,OAAgB,KAErDgS,GAAI,SAAUhS,GACb,QAASlV,EACRT,KAIoB,gBAAb2V,IAAyB6R,GAAcrmB,KAAMwU,GACnDrV,GAAQqV,GACRA,OACD,GACCvV,SASJ,IAAIwnB,IAGHhoB,GAAWG,EAAOH,SAKlByZ,GAAa,sCAEbpM,GAAO3M,GAAOsV,GAAG3I,KAAO,SAAU0I,EAAU9P,GAC3C,GAAI/D,GAAOf,CAGX,KAAM4U,EACL,MAAO3V,KAIR,IAAyB,gBAAb2V,GAAwB,CAUnC,GAPC7T,EAF2B,MAAvB6T,EAAShL,OAAO,IAAyD,MAA3CgL,EAAShL,OAAQgL,EAASvV,OAAS,IAAeuV,EAASvV,QAAU,GAE7F,KAAMuV,EAAU,MAGlB0D,GAAW/R,KAAMqO,IAIrB7T,IAAUA,EAAM,IAAO+D,EAsDrB,OAAMA,GAAWA,EAAQsQ,QACtBtQ,GAAW+hB,IAAa1gB,KAAMyO,GAKhC3V,KAAKoW,YAAavQ,GAAUqB,KAAMyO,EAzDzC,IAAK7T,EAAM,GAAK,CAYf,GAXA+D,EAAUA,YAAmBvF,IAASuF,EAAQ,GAAKA,EAInDvF,GAAOiG,MAAOvG,KAAMM,GAAOunB,UAC1B/lB,EAAM,GACN+D,GAAWA,EAAQrF,SAAWqF,EAAQmB,eAAiBnB,EAAUjG,IACjE,IAII6nB,GAAWtmB,KAAMW,EAAM,KAAQxB,GAAO+W,cAAexR,GACzD,IAAM/D,IAAS+D,GAETvF,GAAOO,WAAYb,KAAM8B,IAC7B9B,KAAM8B,GAAS+D,EAAS/D,IAIxB9B,KAAKmH,KAAMrF,EAAO+D,EAAS/D,GAK9B,OAAO9B,MAQP,GAJAe,EAAOnB,GAAS0Z,eAAgBxX,EAAM,IAIjCf,GAAQA,EAAK0H,WAAa,CAG9B,GAAK1H,EAAKkD,KAAOnC,EAAM,GACtB,MAAO8lB,IAAW1gB,KAAMyO,EAIzB3V,MAAKI,OAAS,EACdJ,KAAK,GAAKe,EAKX,MAFAf,MAAK6F,QAAUjG,GACfI,KAAK2V,SAAWA,EACT3V,KAcH,MAAK2V,GAASnV,UACpBR,KAAK6F,QAAU7F,KAAK,GAAK2V,EACzB3V,KAAKI,OAAS,EACPJ,MAIIM,GAAOO,WAAY8U,GACK,mBAArBiS,IAAWnlB,MACxBmlB,GAAWnlB,MAAOkT,GAElBA,EAAUrV,KAGeuC,SAAtB8S,EAASA,WACb3V,KAAK2V,SAAWA,EAASA,SACzB3V,KAAK6F,QAAU8P,EAAS9P,SAGlBvF,GAAOyX,UAAWpC,EAAU3V,OAIrCiN,IAAKD,UAAY1M,GAAOsV,GAGxBgS,GAAatnB,GAAQV,GAGrB,IAAIkoB,IAAe,iCAElBC,IACCC,UAAU,EACVxU,UAAU,EACVyU,MAAM,EACN7T,MAAM,EAGR9T,IAAOiE,QACN/C,IAAK,SAAUT,EAAMS,EAAK0mB,GAIzB,IAHA,GAAIhD,MACH3jB,EAAMR,EAAMS,GAELD,GAAwB,IAAjBA,EAAIf,WAA6BqC,SAAVqlB,GAAwC,IAAjB3mB,EAAIf,WAAmBF,GAAQiB,GAAMomB,GAAIO,KAC/E,IAAjB3mB,EAAIf,UACR0kB,EAAQ5e,KAAM/E,GAEfA,EAAMA,EAAIC,EAEX,OAAO0jB,IAGR5jB,QAAS,SAAU6mB,EAAGpnB,GAGrB,IAFA,GAAIqnB,MAEID,EAAGA,EAAIA,EAAE9M,YACI,IAAf8M,EAAE3nB,UAAkB2nB,IAAMpnB,GAC9BqnB,EAAE9hB,KAAM6hB,EAIV,OAAOC,MAIT9nB,GAAOsV,GAAGrR,QACT4gB,IAAK,SAAUrS,GACd,GAAI9R,GACHqnB,EAAU/nB,GAAQwS,EAAQ9S,MAC1B8W,EAAMuR,EAAQjoB,MAEf,OAAOJ,MAAKoB,OAAO,WAClB,IAAMJ,EAAI,EAAO8V,EAAJ9V,EAASA,IACrB,GAAKV,GAAOiZ,SAAUvZ,KAAMqoB,EAAQrnB,IACnC,OAAO,KAMXsnB,QAAS,SAAUzE,EAAWhe,GAS7B,IARA,GAAItE,GACHP,EAAI,EACJ+G,EAAI/H,KAAKI,OACT8kB,KACAqD,EAAMf,GAAcrmB,KAAM0iB,IAAoC,gBAAdA,GAC/CvjB,GAAQujB,EAAWhe,GAAW7F,KAAK6F,SACnC,EAEUkC,EAAJ/G,EAAOA,IACd,IAAMO,EAAMvB,KAAKgB,GAAIO,GAAOA,IAAQsE,EAAStE,EAAMA,EAAIkH,WAEtD,GAAKlH,EAAIf,SAAW,KAAO+nB,EAC1BA,EAAInd,MAAM7J,GAAO,GAGA,IAAjBA,EAAIf,UACHF,GAAO4G,KAAKsb,gBAAgBjhB,EAAKsiB,IAAc,CAEhDqB,EAAQ5e,KAAM/E,EACd,OAKH,MAAOvB,MAAKuW,UAAW2O,EAAQ9kB,OAAS,EAAIE,GAAOgnB,OAAQpC,GAAYA,IAKxE9Z,MAAO,SAAUrK,GAGhB,MAAMA,GAKe,gBAATA,GACJT,GAAOe,QAASrB,KAAK,GAAIM,GAAQS,IAIlCT,GAAOe,QAEbN,EAAKoV,OAASpV,EAAK,GAAKA,EAAMf,MAXrBA,KAAK,IAAMA,KAAK,GAAGyI,WAAezI,KAAK2W,QAAQ6R,UAAUpoB,OAAS,IAc7EgI,IAAK,SAAUuN,EAAU9P,GACxB,MAAO7F,MAAKuW,UACXjW,GAAOgnB,OACNhnB,GAAOiG,MAAOvG,KAAKqK,MAAO/J,GAAQqV,EAAU9P,OAK/C4iB,QAAS,SAAU9S,GAClB,MAAO3V,MAAKoI,IAAiB,MAAZuN,EAChB3V,KAAKwW,WAAaxW,KAAKwW,WAAWpV,OAAOuU,OAa5CrV,GAAOuB,MACNigB,OAAQ,SAAU/gB,GACjB,GAAI+gB,GAAS/gB,EAAK0H,UAClB,OAAOqZ,IAA8B,KAApBA,EAAOthB,SAAkBshB,EAAS,MAEpD4G,QAAS,SAAU3nB,GAClB,MAAOT,IAAOkB,IAAKT,EAAM,eAE1B4nB,aAAc,SAAU5nB,EAAMC,EAAGknB,GAChC,MAAO5nB,IAAOkB,IAAKT,EAAM,aAAcmnB,IAExCD,KAAM,SAAUlnB,GACf,MAAOO,GAASP,EAAM,gBAEvBqT,KAAM,SAAUrT,GACf,MAAOO,GAASP,EAAM,oBAEvB6nB,QAAS,SAAU7nB,GAClB,MAAOT,IAAOkB,IAAKT,EAAM,gBAE1BynB,QAAS,SAAUznB,GAClB,MAAOT,IAAOkB,IAAKT,EAAM,oBAE1B8nB,UAAW,SAAU9nB,EAAMC,EAAGknB,GAC7B,MAAO5nB,IAAOkB,IAAKT,EAAM,cAAemnB,IAEzCY,UAAW,SAAU/nB,EAAMC,EAAGknB,GAC7B,MAAO5nB,IAAOkB,IAAKT,EAAM,kBAAmBmnB,IAE7Ca,SAAU,SAAUhoB,GACnB,MAAOT,IAAOgB,SAAWP,EAAK0H,gBAAmB3B,WAAY/F,IAE9DinB,SAAU,SAAUjnB,GACnB,MAAOT,IAAOgB,QAASP,EAAK+F,aAE7B0M,SAAU,SAAUzS,GACnB,MAAOT,IAAO+F,SAAUtF,EAAM,UAC7BA,EAAKgJ,iBAAmBhJ,EAAK+I,cAAclK,SAC3CU,GAAOiG,SAAWxF,EAAKqF,cAEvB,SAAUtD,EAAM8S,GAClBtV,GAAOsV,GAAI9S,GAAS,SAAUolB,EAAOvS,GACpC,GAAIhS,GAAMrD,GAAOsE,IAAK5E,KAAM4V,EAAIsS,EAsBhC,OApB0B,UAArBplB,EAAK+H,MAAO,MAChB8K,EAAWuS,GAGPvS,GAAgC,gBAAbA,KACvBhS,EAAMrD,GAAOc,OAAQuU,EAAUhS,IAG3B3D,KAAKI,OAAS,IAEZ2nB,GAAkBjlB,KACvBa,EAAMrD,GAAOgnB,OAAQ3jB,IAIjBmkB,GAAa3mB,KAAM2B,KACvBa,EAAMA,EAAIqlB,YAILhpB,KAAKuW,UAAW5S,KAGzB,IAAI5B,IAAY,OAKZH,KAiCJtB,IAAO2oB,UAAY,SAAUvnB,GAI5BA,EAA6B,gBAAZA,GACdE,GAAcF,IAAaD,EAAeC,GAC5CpB,GAAOiE,UAAY7C,EAEpB,IACCwnB,GAEAC,EAEAC,EAEAC,EAEAC,EAEAC,EAEAhkB,KAEAikB,GAAS9nB,EAAQ+nB,SAEjBza,EAAO,SAAUpM,GAOhB,IANAumB,EAASznB,EAAQynB,QAAUvmB,EAC3BwmB,GAAQ,EACRE,EAAcC,GAAe,EAC7BA,EAAc,EACdF,EAAe9jB,EAAKnF,OACpB8oB,GAAS,EACD3jB,GAAsB8jB,EAAdC,EAA4BA,IAC3C,GAAK/jB,EAAM+jB,GAAc/e,MAAO3H,EAAM,GAAKA,EAAM,OAAU,GAASlB,EAAQgoB,YAAc,CACzFP,GAAS,CACT,OAGFD,GAAS,EACJ3jB,IACCikB,EACCA,EAAMppB,QACV4O,EAAMwa,EAAM/V,SAEF0V,EACX5jB,KAEAmiB,EAAKiC,YAKRjC,GAECtf,IAAK,WACJ,GAAK7C,EAAO,CAEX,GAAIqK,GAAQrK,EAAKnF,QACjB,QAAUgI,GAAKsO,GACdpW,GAAOuB,KAAM6U,EAAM,SAAU1U,EAAGuW,GAC/B,GAAIlY,GAAOC,GAAOD,KAAMkY,EACV,cAATlY,EACEqB,EAAQ4lB,QAAWI,EAAKvC,IAAK5M,IAClChT,EAAKe,KAAMiS,GAEDA,GAAOA,EAAInY,QAAmB,WAATC,GAEhC+H,EAAKmQ,MAGJ/N,WAGC0e,EACJG,EAAe9jB,EAAKnF,OAGT+oB,IACXI,EAAc3Z,EACdZ,EAAMma,IAGR,MAAOnpB,OAGR4pB,OAAQ,WAkBP,MAjBKrkB,IACJjF,GAAOuB,KAAM2I,UAAW,SAAUxI,EAAGuW,GAEpC,IADA,GAAInN,IACMA,EAAQ9K,GAAOe,QAASkX,EAAKhT,EAAM6F,IAAY,IACxD7F,EAAK0R,OAAQ7L,EAAO,GAEf8d,IACUG,GAATje,GACJie,IAEaC,GAATle,GACJke,OAMEtpB,MAIRmlB,IAAK,SAAUvP,GACd,MAAOA,GAAKtV,GAAOe,QAASuU,EAAIrQ,GAAS,MAASA,IAAQA,EAAKnF,SAGhE2O,MAAO,WAGN,MAFAxJ,MACA8jB,EAAe,EACRrpB,MAGR2pB,QAAS,WAER,MADApkB,GAAOikB,EAAQL,EAAStmB,OACjB7C,MAGR+lB,SAAU,WACT,OAAQxgB,GAGTskB,KAAM,WAKL,MAJAL,GAAQ3mB,OACFsmB,GACLzB,EAAKiC,UAEC3pB,MAGR8pB,OAAQ,WACP,OAAQN,GAGTO,SAAU,SAAUlkB,EAAS6Q,GAU5B,OATKnR,GAAW6jB,IAASI,IACxB9S,EAAOA,MACPA,GAAS7Q,EAAS6Q,EAAK7L,MAAQ6L,EAAK7L,QAAU6L,GACzCwS,EACJM,EAAMljB,KAAMoQ,GAEZ1H,EAAM0H,IAGD1W,MAGRgP,KAAM,WAEL,MADA0Y,GAAKqC,SAAU/pB,KAAMwK,WACdxK,MAGRopB,MAAO,WACN,QAASA,GAIZ,OAAO1B,IAIRpnB,GAAOiE,QAENgM,SAAU,SAAU0B,GACnB,GAAI+X,KAEA,UAAW,OAAQ1pB,GAAO2oB,UAAU,eAAgB,aACpD,SAAU,OAAQ3oB,GAAO2oB,UAAU,eAAgB,aACnD,SAAU,WAAY3oB,GAAO2oB,UAAU,YAE1C1U,EAAQ,UACRpD,GACCoD,MAAO,WACN,MAAOA,IAERtF,OAAQ,WAEP,MADAqB,GAASb,KAAMjF,WAAYqH,KAAMrH,WAC1BxK,MAERiqB,KAAM,WACL,GAAIC,GAAM1f,SACV,OAAOlK,IAAOiQ,SAAS,SAAU4Z,GAChC7pB,GAAOuB,KAAMmoB,EAAQ,SAAUhpB,EAAGopB,GACjC,GAAIxU,GAAKtV,GAAOO,WAAYqpB,EAAKlpB,KAASkpB,EAAKlpB,EAE/CsP,GAAU8Z,EAAM,IAAK,WACpB,GAAIC,GAAWzU,GAAMA,EAAGrL,MAAOvK,KAAMwK,UAChC6f,IAAY/pB,GAAOO,WAAYwpB,EAASlZ,SAC5CkZ,EAASlZ,UACP1B,KAAM0a,EAASG,SACfzY,KAAMsY,EAASI,QACf5Y,SAAUwY,EAASK,QAErBL,EAAUC,EAAO,GAAM,QAAUpqB,OAASmR,EAAUgZ,EAAShZ,UAAYnR,KAAM4V,GAAOyU,GAAa7f,eAItG0f,EAAM,OACJ/Y,WAIJA,QAAS,SAAUhR,GAClB,MAAc,OAAPA,EAAcG,GAAOiE,OAAQpE,EAAKgR,GAAYA,IAGvDb,IAwCD,OArCAa,GAAQsZ,KAAOtZ,EAAQ8Y,KAGvB3pB,GAAOuB,KAAMmoB,EAAQ,SAAUhpB,EAAGopB,GACjC,GAAI7kB,GAAO6kB,EAAO,GACjBM,EAAcN,EAAO,EAGtBjZ,GAASiZ,EAAM,IAAO7kB,EAAK6C,IAGtBsiB,GACJnlB,EAAK6C,IAAI,WAERmM,EAAQmW,GAGNV,EAAY,EAAJhpB,GAAS,GAAI2oB,QAASK,EAAQ,GAAK,GAAIH,MAInDvZ,EAAU8Z,EAAM,IAAO,WAEtB,MADA9Z,GAAU8Z,EAAM,GAAK,QAAUpqB,OAASsQ,EAAWa,EAAUnR,KAAMwK,WAC5DxK,MAERsQ,EAAU8Z,EAAM,GAAK,QAAW7kB,EAAKwkB,WAItC5Y,EAAQA,QAASb,GAGZ2B,GACJA,EAAKhR,KAAMqP,EAAUA,GAIfA,GAIRqa,KAAM,SAAUC,GACf,GAwBCC,GAAgBC,EAAkBC,EAxB/B/pB,EAAI,EACPgqB,EAAgBngB,EAAM5J,KAAMuJ,WAC5BpK,EAAS4qB,EAAc5qB,OAGvBsQ,EAAuB,IAAXtQ,GAAkBwqB,GAAetqB,GAAOO,WAAY+pB,EAAYzZ,SAAc/Q,EAAS,EAGnGkQ,EAAyB,IAAdI,EAAkBka,EAActqB,GAAOiQ,WAGlD0a,EAAa,SAAUjqB,EAAG2b,EAAUxR,GACnC,MAAO,UAAUrC,GAChB6T,EAAU3b,GAAMhB,KAChBmL,EAAQnK,GAAMwJ,UAAUpK,OAAS,EAAIyK,EAAM5J,KAAMuJ,WAAc1B,EAC1DqC,IAAW0f,EACfva,EAASW,WAAY0L,EAAUxR,KAEhBuF,GACfJ,EAASY,YAAayL,EAAUxR,IAQpC,IAAK/K,EAAS,EAIb,IAHAyqB,EAAiB,GAAIpT,OAAOrX,GAC5B0qB,EAAmB,GAAIrT,OAAOrX,GAC9B2qB,EAAkB,GAAItT,OAAOrX,GACjBA,EAAJY,EAAYA,IACdgqB,EAAehqB,IAAOV,GAAOO,WAAYmqB,EAAehqB,GAAImQ,SAChE6Z,EAAehqB,GAAImQ,UACjB1B,KAAMwb,EAAYjqB,EAAG+pB,EAAiBC,IACtCnZ,KAAMvB,EAASia,QACf5Y,SAAUsZ,EAAYjqB,EAAG8pB,EAAkBD,MAE3Cna,CAUL,OAJMA,IACLJ,EAASY,YAAa6Z,EAAiBC,GAGjC1a,EAASa,YAMlB,IAAI+Z,GAEJ5qB,IAAOsV,GAAGnT,MAAQ,SAAUmT,GAI3B,MAFAtV,IAAOmC,MAAM0O,UAAU1B,KAAMmG,GAEtB5V,MAGRM,GAAOiE,QAENgT,SAAS,EAIT4T,UAAW,EAGXC,UAAW,SAAUC,GACfA,EACJ/qB,GAAO6qB,YAEP7qB,GAAOmC,OAAO,IAKhBA,MAAO,SAAU6oB,GAGhB,GAAKA,KAAS,KAAShrB,GAAO6qB,WAAY7qB,GAAOiX,QAAjD,CAKA,IAAM3X,GAAS0J,KACd,MAAO6D,YAAY7M,GAAOmC,MAI3BnC,IAAOiX,SAAU,EAGZ+T,KAAS,KAAUhrB,GAAO6qB,UAAY,IAK3CD,GAAUha,YAAatR,IAAYU,KAG9BA,GAAOsV,GAAG2V,iBACdjrB,GAAQV,IAAW2rB,eAAgB,SACnCjrB,GAAQV,IAAW4rB,IAAK,eA8B3BlrB,GAAOmC,MAAM0O,QAAU,SAAUhR,GAChC,IAAM+qB,GAOL,GALAA,GAAY5qB,GAAOiQ,WAKU,aAAxB3Q,GAAS4C,WAEb2K,WAAY7M,GAAOmC,WAGb,IAAK7C,GAASuC,iBAEpBvC,GAASuC,iBAAkB,mBAAoBE,GAAW,GAG1DtC,EAAOoC,iBAAkB,OAAQE,GAAW,OAGtC,CAENzC,GAASoiB,YAAa,qBAAsB3f,GAG5CtC,EAAOiiB,YAAa,SAAU3f,EAI9B,IAAI0f,IAAM,CAEV,KACCA,EAA6B,MAAvBhiB,EAAO0rB,cAAwB7rB,GAASiK,gBAC7C,MAAMxG,IAEH0e,GAAOA,EAAI2J,WACf,QAAUC,KACT,IAAMrrB,GAAOiX,QAAU,CAEtB,IAGCwK,EAAI2J,SAAS,QACZ,MAAMroB,GACP,MAAO8J,YAAYwe,EAAe,IAInCzpB,IAGA5B,GAAOmC,YAMZ,MAAOyoB,IAAU/Z,QAAShR,GAI3B,IAMIa,IANAkF,GAAe,WAOnB,KAAMlF,KAAKV,IAAQyE,IAClB,KAEDA,IAAQ4S,QAAgB,MAAN3W,GAIlB+D,GAAQsK,wBAAyB,EAGjC/O,GAAO,WAEN,GAAI0L,GAAK0O,EAAKpR,EAAMsiB,CAEpBtiB,GAAO1J,GAASqG,qBAAsB,QAAU,GAC1CqD,GAASA,EAAKF,QAMpBsR,EAAM9a,GAAS+F,cAAe,OAC9BimB,EAAYhsB,GAAS+F,cAAe,OACpCimB,EAAUxiB,MAAMyiB,QAAU,iEAC1BviB,EAAKvC,YAAa6kB,GAAY7kB,YAAa2T,SAE/BA,GAAItR,MAAMkG,OAASpJ,KAK9BwU,EAAItR,MAAMyiB,QAAU,gEAEpB9mB,GAAQsK,uBAAyBrD,EAA0B,IAApB0O,EAAItO,YACtCJ,IAIJ1C,EAAKF,MAAMkG,KAAO,IAIpBhG,EAAKqR,YAAaiR,MAMnB,WACC,GAAIlR,GAAM9a,GAAS+F,cAAe,MAGlC,IAA6B,MAAzBZ,GAAQC,cAAuB,CAElCD,GAAQC,eAAgB,CACxB,WACQ0V,GAAIvZ,KACV,MAAOkC,GACR0B,GAAQC,eAAgB,GAK1B0V,EAAM,QAOPpa,GAAOoD,WAAa,SAAU3C,GAC7B,GAAI+qB,GAASxrB,GAAOwrB,QAAS/qB,EAAKsF,SAAW,KAAKpD,eACjDzC,GAAYO,EAAKP,UAAY,CAG9B,OAAoB,KAAbA,GAA+B,IAAbA,GACxB,GAGCsrB,GAAUA,KAAW,GAAQ/qB,EAAKmC,aAAa,aAAe4oB,EAIjE,IAAI3oB,IAAS,gCACZH,GAAa,UAqOd1C,IAAOiE,QACNP,SAIA8nB,QACCC,WAAW,EACXC,UAAU,EAEVC,UAAW,8CAGZnkB,QAAS,SAAU/G,GAElB,MADAA,GAAOA,EAAKP,SAAWF,GAAO0D,MAAOjD,EAAKT,GAAOwD,UAAa/C,EAAMT,GAAOwD,WAClE/C,IAASuC,EAAmBvC,IAGtC6B,KAAM,SAAU7B,EAAM+B,EAAMF,GAC3B,MAAOY,GAAczC,EAAM+B,EAAMF,IAGlCspB,WAAY,SAAUnrB,EAAM+B,GAC3B,MAAO2B,GAAoB1D,EAAM+B,IAIlC4E,MAAO,SAAU3G,EAAM+B,EAAMF,GAC5B,MAAOY,GAAczC,EAAM+B,EAAMF,GAAM,IAGxC+M,YAAa,SAAU5O,EAAM+B,GAC5B,MAAO2B,GAAoB1D,EAAM+B,GAAM,MAIzCxC,GAAOsV,GAAGrR,QACT3B,KAAM,SAAUD,EAAKmG,GACpB,GAAI9H,GAAG8B,EAAMF,EACZ7B,EAAOf,KAAK,GACZyN,EAAQ1M,GAAQA,EAAK+e,UAMtB,IAAajd,SAARF,EAAoB,CACxB,GAAK3C,KAAKI,SACTwC,EAAOtC,GAAOsC,KAAM7B,GAEG,IAAlBA,EAAKP,WAAmBF,GAAOoH,MAAO3G,EAAM,gBAAkB,CAElE,IADAC,EAAIyM,EAAMrN,OACFY,KAIFyM,EAAOzM,KACX8B,EAAO2K,EAAOzM,GAAI8B,KACe,IAA5BA,EAAKuS,QAAS,WAClBvS,EAAOxC,GAAOkE,UAAW1B,EAAK+H,MAAM,IACpCnI,EAAU3B,EAAM+B,EAAMF,EAAME,KAI/BxC,IAAOoH,MAAO3G,EAAM,eAAe,GAIrC,MAAO6B,GAIR,MAAoB,gBAARD,GACJ3C,KAAK6B,KAAK,WAChBvB,GAAOsC,KAAM5C,KAAM2C,KAId6H,UAAUpK,OAAS,EAGzBJ,KAAK6B,KAAK,WACTvB,GAAOsC,KAAM5C,KAAM2C,EAAKmG,KAKzB/H,EAAO2B,EAAU3B,EAAM4B,EAAKrC,GAAOsC,KAAM7B,EAAM4B,IAAUE,QAG3DqpB,WAAY,SAAUvpB,GACrB,MAAO3C,MAAK6B,KAAK,WAChBvB,GAAO4rB,WAAYlsB,KAAM2C,QAM5BrC,GAAOiE,QACNqK,MAAO,SAAU7N,EAAMV,EAAMuC,GAC5B,GAAIgM,EAEJ,OAAK7N,IACJV,GAASA,GAAQ,MAAS,QAC1BuO,EAAQtO,GAAOoH,MAAO3G,EAAMV,GAGvBuC,KACEgM,GAAStO,GAAOoE,QAAQ9B,GAC7BgM,EAAQtO,GAAOoH,MAAO3G,EAAMV,EAAMC,GAAOyX,UAAUnV,IAEnDgM,EAAMtI,KAAM1D,IAGPgM,OAZR,QAgBDud,QAAS,SAAUprB,EAAMV,GACxBA,EAAOA,GAAQ,IAEf,IAAIuO,GAAQtO,GAAOsO,MAAO7N,EAAMV,GAC/B+rB,EAAcxd,EAAMxO,OACpBwV,EAAKhH,EAAM6E,QACXnF,EAAQhO,GAAOuO,YAAa9N,EAAMV,GAClC4nB,EAAO,WACN3nB,GAAO6rB,QAASprB,EAAMV,GAIZ,gBAAPuV,IACJA,EAAKhH,EAAM6E,QACX2Y,KAGIxW,IAIU,OAATvV,GACJuO,EAAMwD,QAAS,oBAIT9D,GAAMgD,KACbsE,EAAG3U,KAAMF,EAAMknB,EAAM3Z,KAGhB8d,GAAe9d,GACpBA,EAAMS,MAAMC,QAKdH,YAAa,SAAU9N,EAAMV,GAC5B,GAAIsC,GAAMtC,EAAO,YACjB,OAAOC,IAAOoH,MAAO3G,EAAM4B,IAASrC,GAAOoH,MAAO3G,EAAM4B,GACvDoM,MAAOzO,GAAO2oB,UAAU,eAAe7gB,IAAI,WAC1C9H,GAAOqP,YAAa5O,EAAMV,EAAO,SACjCC,GAAOqP,YAAa5O,EAAM4B,UAM9BrC,GAAOsV,GAAGrR,QACTqK,MAAO,SAAUvO,EAAMuC,GACtB,GAAIypB,GAAS,CAQb,OANqB,gBAAThsB,KACXuC,EAAOvC,EACPA,EAAO,KACPgsB,KAGI7hB,UAAUpK,OAASisB,EAChB/rB,GAAOsO,MAAO5O,KAAK,GAAIK,GAGfwC,SAATD,EACN5C,KACAA,KAAK6B,KAAK,WACT,GAAI+M,GAAQtO,GAAOsO,MAAO5O,KAAMK,EAAMuC,EAGtCtC,IAAOuO,YAAa7O,KAAMK,GAEZ,OAATA,GAA8B,eAAbuO,EAAM,IAC3BtO,GAAO6rB,QAASnsB,KAAMK,MAI1B8rB,QAAS,SAAU9rB,GAClB,MAAOL,MAAK6B,KAAK,WAChBvB,GAAO6rB,QAASnsB,KAAMK,MAGxBisB,WAAY,SAAUjsB,GACrB,MAAOL,MAAK4O,MAAOvO,GAAQ,UAI5B8Q,QAAS,SAAU9Q,EAAMF,GACxB,GAAIgU,GACHoY,EAAQ,EACRC,EAAQlsB,GAAOiQ,WACf7P,EAAWV,KACXgB,EAAIhB,KAAKI,OACTkqB,EAAU,aACCiC,GACTC,EAAMtb,YAAaxQ,GAAYA,IAUlC,KANqB,gBAATL,KACXF,EAAME,EACNA,EAAOwC,QAERxC,EAAOA,GAAQ,KAEPW,KACPmT,EAAM7T,GAAOoH,MAAOhH,EAAUM,GAAKX,EAAO,cACrC8T,GAAOA,EAAIpF,QACfwd,IACApY,EAAIpF,MAAM3G,IAAKkiB,GAIjB,OADAA,KACOkC,EAAMrb,QAAShR,KAGxB,IAAIssB,IAAO,sCAAwCC,OAE/CzgB,IAAc,MAAO,QAAS,SAAU,QAExCZ,GAAW,SAAUtK,EAAM4rB,GAI7B,MADA5rB,GAAO4rB,GAAM5rB,EAC4B,SAAlCT,GAAOmJ,IAAK1I,EAAM,aAA2BT,GAAOiZ,SAAUxY,EAAKiG,cAAejG,IAOvF6rB,GAAStsB,GAAOssB,OAAS,SAAU7mB,EAAO6P,EAAIjT,EAAKmG,EAAO+jB,EAAWC,EAAUC,GAClF,GAAI/rB,GAAI,EACPZ,EAAS2F,EAAM3F,OACf4sB,EAAc,MAAPrqB,CAGR,IAA4B,WAAvBrC,GAAOD,KAAMsC,GAAqB,CACtCkqB,GAAY,CACZ,KAAM7rB,IAAK2B,GACVrC,GAAOssB,OAAQ7mB,EAAO6P,EAAI5U,EAAG2B,EAAI3B,IAAI,EAAM8rB,EAAUC,OAIhD,IAAelqB,SAAViG,IACX+jB,GAAY,EAENvsB,GAAOO,WAAYiI,KACxBikB,GAAM,GAGFC,IAECD,GACJnX,EAAG3U,KAAM8E,EAAO+C,GAChB8M,EAAK,OAILoX,EAAOpX,EACPA,EAAK,SAAU7U,EAAM4B,EAAKmG,GACzB,MAAOkkB,GAAK/rB,KAAMX,GAAQS,GAAQ+H,MAKhC8M,GACJ,KAAYxV,EAAJY,EAAYA,IACnB4U,EAAI7P,EAAM/E,GAAI2B,EAAKoqB,EAAMjkB,EAAQA,EAAM7H,KAAM8E,EAAM/E,GAAIA,EAAG4U,EAAI7P,EAAM/E,GAAI2B,IAK3E,OAAOkqB,GACN9mB,EAGAinB,EACCpX,EAAG3U,KAAM8E,GACT3F,EAASwV,EAAI7P,EAAM,GAAIpD,GAAQmqB,GAE9BrmB,GAAiB,yBAIrB,WAEC,GAAI8b,GAAQ3iB,GAAS+F,cAAe,SACnC+U,EAAM9a,GAAS+F,cAAe,OAC9BsnB,EAAWrtB,GAAS8F,wBAsDrB,IAnDAgV,EAAI9R,UAAY,qEAGhB7D,GAAQmoB,kBAAgD,IAA5BxS,EAAI5T,WAAWtG,SAI3CuE,GAAQooB,OAASzS,EAAIzU,qBAAsB,SAAU7F,OAIrD2E,GAAQqoB,gBAAkB1S,EAAIzU,qBAAsB,QAAS7F,OAI7D2E,GAAQ4D,WACyD,kBAAhE/I,GAAS+F,cAAe,OAAQ0nB,WAAW,GAAO3kB,UAInD6Z,EAAMliB,KAAO,WACbkiB,EAAM5b,SAAU,EAChBsmB,EAASlmB,YAAawb,GACtBxd,GAAQuoB,cAAgB/K,EAAM5b,QAI9B+T,EAAI9R,UAAY,yBAChB7D,GAAQwoB,iBAAmB7S,EAAI2S,WAAW,GAAOtI,UAAU9b,aAG3DgkB,EAASlmB,YAAa2T,GACtBA,EAAI9R,UAAY,mDAIhB7D,GAAQyoB,WAAa9S,EAAI2S,WAAW,GAAOA,WAAW,GAAOtI,UAAUpe,QAKvE5B,GAAQuD,cAAe,EAClBoS,EAAIsH,cACRtH,EAAIsH,YAAa,UAAW,WAC3Bjd,GAAQuD,cAAe,IAGxBoS,EAAI2S,WAAW,GAAOI,SAIM,MAAzB1oB,GAAQC,cAAuB,CAElCD,GAAQC,eAAgB,CACxB,WACQ0V,GAAIvZ,KACV,MAAOkC,GACR0B,GAAQC,eAAgB,OAM3B,WACC,GAAIhE,GAAG0sB,EACNhT,EAAM9a,GAAS+F,cAAe,MAG/B,KAAM3E,KAAO4lB,QAAQ,EAAM+G,QAAQ,EAAMC,SAAS,GACjDF,EAAY,KAAO1sB,GAEZ+D,GAAS/D,EAAI,WAAc0sB,IAAa3tB,MAE9C2a,EAAIb,aAAc6T,EAAW,KAC7B3oB,GAAS/D,EAAI,WAAc0Z,EAAIoF,WAAY4N,GAAY5pB,WAAY,EAKrE4W,GAAM,OAIP,IAAImT,IAAa,+BAChBC,GAAY,OACZC,GAAc,uCACdC,GAAc,kCACdC,GAAiB,sBAoBlB3tB,IAAOiC,OAEN/C,UAEA4I,IAAK,SAAUrH,EAAMmtB,EAAOrT,EAASjY,EAAM+S,GAC1C,GAAIxB,GAAKjM,EAAQimB,EAAGC,EACnBC,EAASC,EAAaC,EACtBC,EAAUnuB,EAAMouB,EAAYC,EAC5BC,EAAWruB,GAAOoH,MAAO3G,EAG1B,IAAM4tB,EAAN,CAmCA,IA9BK9T,EAAQA,UACZuT,EAAcvT,EACdA,EAAUuT,EAAYvT,QACtBlF,EAAWyY,EAAYzY,UAIlBkF,EAAQzW,OACbyW,EAAQzW,KAAO9D,GAAO8D,SAIhB8D,EAASymB,EAASzmB,UACxBA,EAASymB,EAASzmB,YAEZomB,EAAcK,EAASxmB,UAC7BmmB,EAAcK,EAASxmB,OAAS,SAAU9E,GAGzC,aAAc/C,MAAW4F,IAAkB7C,GAAK/C,GAAOiC,MAAMqsB,YAAcvrB,EAAEhD,KAE5EwC,OADAvC,GAAOiC,MAAMssB,SAAStkB,MAAO+jB,EAAYvtB,KAAMyJ,YAIjD8jB,EAAYvtB,KAAOA,GAIpBmtB,GAAUA,GAAS,IAAKpsB,MAAOC,MAAiB,IAChDosB,EAAID,EAAM9tB,OACF+tB,KACPha,EAAM8Z,GAAe3mB,KAAM4mB,EAAMC,QACjC9tB,EAAOquB,EAAWva,EAAI,GACtBsa,GAAeta,EAAI,IAAM,IAAKtP,MAAO,KAAMmS,OAGrC3W,IAKNguB,EAAU/tB,GAAOiC,MAAM8rB,QAAShuB,OAGhCA,GAASsV,EAAW0Y,EAAQS,aAAeT,EAAQU,WAAc1uB,EAGjEguB,EAAU/tB,GAAOiC,MAAM8rB,QAAShuB,OAGhCkuB,EAAYjuB,GAAOiE,QAClBlE,KAAMA,EACNquB,SAAUA,EACV9rB,KAAMA,EACNiY,QAASA,EACTzW,KAAMyW,EAAQzW,KACduR,SAAUA,EACVoL,aAAcpL,GAAYrV,GAAOgjB,KAAKxhB,MAAMif,aAAa5f,KAAMwU,GAC/DqZ,UAAWP,EAAWxU,KAAK,MACzBmU,IAGII,EAAWtmB,EAAQ7H,MACzBmuB,EAAWtmB,EAAQ7H,MACnBmuB,EAASS,cAAgB,EAGnBZ,EAAQa,OAASb,EAAQa,MAAMjuB,KAAMF,EAAM6B,EAAM6rB,EAAYH,MAAkB,IAE/EvtB,EAAKoB,iBACTpB,EAAKoB,iBAAkB9B,EAAMiuB,GAAa,GAE/BvtB,EAAKihB,aAChBjhB,EAAKihB,YAAa,KAAO3hB,EAAMiuB,KAK7BD,EAAQjmB,MACZimB,EAAQjmB,IAAInH,KAAMF,EAAMwtB,GAElBA,EAAU1T,QAAQzW,OACvBmqB,EAAU1T,QAAQzW,KAAOyW,EAAQzW,OAK9BuR,EACJ6Y,EAASvX,OAAQuX,EAASS,gBAAiB,EAAGV,GAE9CC,EAASloB,KAAMioB,GAIhBjuB,GAAOiC,MAAM/C,OAAQa,IAAS,EAI/BU,GAAO,OAIR6oB,OAAQ,SAAU7oB,EAAMmtB,EAAOrT,EAASlF,EAAUwZ,GACjD,GAAIpY,GAAGwX,EAAWpa,EACjBib,EAAWjB,EAAGjmB,EACdmmB,EAASG,EAAUnuB,EACnBouB,EAAYC,EACZC,EAAWruB,GAAOwH,QAAS/G,IAAUT,GAAOoH,MAAO3G,EAEpD,IAAM4tB,IAAczmB,EAASymB,EAASzmB,QAAtC,CAOA,IAFAgmB,GAAUA,GAAS,IAAKpsB,MAAOC,MAAiB,IAChDosB,EAAID,EAAM9tB,OACF+tB,KAMP,GALAha,EAAM8Z,GAAe3mB,KAAM4mB,EAAMC,QACjC9tB,EAAOquB,EAAWva,EAAI,GACtBsa,GAAeta,EAAI,IAAM,IAAKtP,MAAO,KAAMmS,OAGrC3W,EAAN,CAcA,IAPAguB,EAAU/tB,GAAOiC,MAAM8rB,QAAShuB,OAChCA,GAASsV,EAAW0Y,EAAQS,aAAeT,EAAQU,WAAc1uB,EACjEmuB,EAAWtmB,EAAQ7H,OACnB8T,EAAMA,EAAI,IAAM,GAAI8L,QAAQ,UAAYwO,EAAWxU,KAAK,iBAAmB,WAG3EmV,EAAYrY,EAAIyX,EAASpuB,OACjB2W,KACPwX,EAAYC,EAAUzX,IAEfoY,GAAeT,IAAaH,EAAUG,UACzC7T,GAAWA,EAAQzW,OAASmqB,EAAUnqB,MACtC+P,IAAOA,EAAIhT,KAAMotB,EAAUS,YAC3BrZ,GAAYA,IAAa4Y,EAAU5Y,WAAyB,OAAbA,IAAqB4Y,EAAU5Y,YACjF6Y,EAASvX,OAAQF,EAAG,GAEfwX,EAAU5Y,UACd6Y,EAASS,gBAELZ,EAAQzE,QACZyE,EAAQzE,OAAO3oB,KAAMF,EAAMwtB,GAOzBa,KAAcZ,EAASpuB,SACrBiuB,EAAQgB,UAAYhB,EAAQgB,SAASpuB,KAAMF,EAAM0tB,EAAYE,EAASxmB,WAAa,GACxF7H,GAAOiI,YAAaxH,EAAMV,EAAMsuB,EAASxmB,cAGnCD,GAAQ7H,QAtCf,KAAMA,IAAQ6H,GACb5H,GAAOiC,MAAMqnB,OAAQ7oB,EAAMV,EAAO6tB,EAAOC,GAAKtT,EAASlF,GAAU,EA0C/DrV,IAAOiD,cAAe2E,WACnBymB,GAASxmB,OAIhB7H,GAAOqP,YAAa5O,EAAM,aAI5BuuB,QAAS,SAAU/sB,EAAOK,EAAM7B,EAAMwuB,GACrC,GAAIpnB,GAAQqnB,EAAQjuB,EACnBkuB,EAAYpB,EAASla,EAAKnT,EAC1B0uB,GAAc3uB,GAAQnB,IACtBS,EAAOmV,GAAOvU,KAAMsB,EAAO,QAAWA,EAAMlC,KAAOkC,EACnDksB,EAAajZ,GAAOvU,KAAMsB,EAAO,aAAgBA,EAAMysB,UAAUnqB,MAAM,OAKxE,IAHAtD,EAAM4S,EAAMpT,EAAOA,GAAQnB,GAGJ,IAAlBmB,EAAKP,UAAoC,IAAlBO,EAAKP,WAK5BwtB,GAAY7sB,KAAMd,EAAOC,GAAOiC,MAAMqsB,aAItCvuB,EAAKgV,QAAQ,MAAQ,IAEzBoZ,EAAapuB,EAAKwE,MAAM,KACxBxE,EAAOouB,EAAWhb,QAClBgb,EAAWzX,QAEZwY,EAASnvB,EAAKgV,QAAQ,KAAO,GAAK,KAAOhV,EAGzCkC,EAAQA,EAAOjC,GAAOwD,SACrBvB,EACA,GAAIjC,IAAOqvB,MAAOtvB,EAAuB,gBAAVkC,IAAsBA,GAGtDA,EAAMqtB,UAAYL,EAAe,EAAI,EACrChtB,EAAMysB,UAAYP,EAAWxU,KAAK,KAClC1X,EAAMstB,aAAettB,EAAMysB,UAC1B,GAAI/O,QAAQ,UAAYwO,EAAWxU,KAAK,iBAAmB,WAC3D,KAGD1X,EAAM4N,OAAStN,OACTN,EAAMuQ,SACXvQ,EAAMuQ,OAAS/R,GAIhB6B,EAAe,MAARA,GACJL,GACFjC,GAAOyX,UAAWnV,GAAQL,IAG3B8rB,EAAU/tB,GAAOiC,MAAM8rB,QAAShuB,OAC1BkvB,IAAgBlB,EAAQiB,SAAWjB,EAAQiB,QAAQ/kB,MAAOxJ,EAAM6B,MAAW,GAAjF,CAMA,IAAM2sB,IAAiBlB,EAAQyB,WAAaxvB,GAAOC,SAAUQ,GAAS,CAMrE,IAJA0uB,EAAapB,EAAQS,cAAgBzuB,EAC/B2tB,GAAY7sB,KAAMsuB,EAAapvB,KACpCkB,EAAMA,EAAIkH,YAEHlH,EAAKA,EAAMA,EAAIkH,WACtBinB,EAAUppB,KAAM/E,GAChB4S,EAAM5S,CAIF4S,MAASpT,EAAKiG,eAAiBpH,KACnC8vB,EAAUppB,KAAM6N,EAAIgB,aAAehB,EAAIiB,cAAgBrV,GAMzD,IADAiB,EAAI,GACKO,EAAMmuB,EAAU1uB,QAAUuB,EAAMwtB,wBAExCxtB,EAAMlC,KAAOW,EAAI,EAChByuB,EACApB,EAAQU,UAAY1uB,EAGrB8H,GAAW7H,GAAOoH,MAAOnG,EAAK,eAAoBgB,EAAMlC,OAAUC,GAAOoH,MAAOnG,EAAK,UAChF4G,GACJA,EAAOoC,MAAOhJ,EAAKqB,GAIpBuF,EAASqnB,GAAUjuB,EAAKiuB,GACnBrnB,GAAUA,EAAOoC,OAASjK,GAAOoD,WAAYnC,KACjDgB,EAAM4N,OAAShI,EAAOoC,MAAOhJ,EAAKqB,GAC7BL,EAAM4N,UAAW,GACrB5N,EAAMytB,iBAOT,IAHAztB,EAAMlC,KAAOA,GAGPkvB,IAAiBhtB,EAAM0tB,wBAErB5B,EAAQ6B,UAAY7B,EAAQ6B,SAAS3lB,MAAOmlB,EAAUvrB,MAAOvB,MAAW,IAC9EtC,GAAOoD,WAAY3C,IAKdyuB,GAAUzuB,EAAMV,KAAWC,GAAOC,SAAUQ,GAAS,CAGzDoT,EAAMpT,EAAMyuB,GAEPrb,IACJpT,EAAMyuB,GAAW,MAIlBlvB,GAAOiC,MAAMqsB,UAAYvuB,CACzB,KACCU,EAAMV,KACL,MAAQgD,IAIV/C,GAAOiC,MAAMqsB,UAAY/rB,OAEpBsR,IACJpT,EAAMyuB,GAAWrb,GAMrB,MAAO5R,GAAM4N,SAGd0e,SAAU,SAAUtsB,GAGnBA,EAAQjC,GAAOiC,MAAM4tB,IAAK5tB,EAE1B,IAAIvB,GAAG2C,EAAK4qB,EAAWrJ,EAASnO,EAC/BqZ,KACA1Z,EAAO7L,EAAM5J,KAAMuJ,WACnBgkB,GAAaluB,GAAOoH,MAAO1H,KAAM,eAAoBuC,EAAMlC,UAC3DguB,EAAU/tB,GAAOiC,MAAM8rB,QAAS9rB,EAAMlC,SAOvC,IAJAqW,EAAK,GAAKnU,EACVA,EAAM8tB,eAAiBrwB,MAGlBquB,EAAQiC,aAAejC,EAAQiC,YAAYrvB,KAAMjB,KAAMuC,MAAY,EAAxE,CASA,IAJA6tB,EAAe9vB,GAAOiC,MAAMisB,SAASvtB,KAAMjB,KAAMuC,EAAOisB,GAGxDxtB,EAAI,GACKkkB,EAAUkL,EAAcpvB,QAAWuB,EAAMwtB,wBAIjD,IAHAxtB,EAAMguB,cAAgBrL,EAAQnkB,KAE9BgW,EAAI,GACKwX,EAAYrJ,EAAQsJ,SAAUzX,QAAWxU,EAAMiuB,mCAIjDjuB,EAAMstB,cAAgBttB,EAAMstB,aAAa1uB,KAAMotB,EAAUS,cAE9DzsB,EAAMgsB,UAAYA,EAClBhsB,EAAMK,KAAO2rB,EAAU3rB,KAEvBe,IAASrD,GAAOiC,MAAM8rB,QAASE,EAAUG,eAAkBvmB,QAAUomB,EAAU1T,SAC5EtQ,MAAO2a,EAAQnkB,KAAM2V,GAEX7T,SAARc,IACEpB,EAAM4N,OAASxM,MAAS,IAC7BpB,EAAMytB,iBACNztB,EAAMkuB,mBAYX,OAJKpC,GAAQqC,cACZrC,EAAQqC,aAAazvB,KAAMjB,KAAMuC,GAG3BA,EAAM4N,SAGdqe,SAAU,SAAUjsB,EAAOisB,GAC1B,GAAImC,GAAKpC,EAAW/iB,EAASxK,EAC5BovB,KACAnB,EAAgBT,EAASS,cACzB1tB,EAAMgB,EAAMuQ,MAKb,IAAKmc,GAAiB1tB,EAAIf,YAAc+B,EAAM2jB,QAAyB,UAAf3jB,EAAMlC,MAG7D,KAAQkB,GAAOvB,KAAMuB,EAAMA,EAAIkH,YAAczI,KAK5C,GAAsB,IAAjBuB,EAAIf,WAAmBe,EAAIwkB,YAAa,GAAuB,UAAfxjB,EAAMlC,MAAoB,CAE9E,IADAmL,KACMxK,EAAI,EAAOiuB,EAAJjuB,EAAmBA,IAC/ButB,EAAYC,EAAUxtB,GAGtB2vB,EAAMpC,EAAU5Y,SAAW,IAEH9S,SAAnB2I,EAASmlB,KACbnlB,EAASmlB,GAAQpC,EAAUxN,aAC1BzgB,GAAQqwB,EAAK3wB,MAAOoL,MAAO7J,IAAS,EACpCjB,GAAO4G,KAAMypB,EAAK3wB,KAAM,MAAQuB,IAAQnB,QAErCoL,EAASmlB,IACbnlB,EAAQlF,KAAMioB,EAGX/iB,GAAQpL,QACZgwB,EAAa9pB,MAAOvF,KAAMQ,EAAKitB,SAAUhjB,IAW7C,MAJKyjB,GAAgBT,EAASpuB,QAC7BgwB,EAAa9pB,MAAOvF,KAAMf,KAAMwuB,SAAUA,EAAS3jB,MAAOokB,KAGpDmB,GAGRD,IAAK,SAAU5tB,GACd,GAAKA,EAAOjC,GAAOwD,SAClB,MAAOvB,EAIR,IAAIvB,GAAG6L,EAAMsK,EACZ9W,EAAOkC,EAAMlC,KACbuwB,EAAgBruB,EAChBsuB,EAAU7wB,KAAK8wB,SAAUzwB,EAa1B,KAXMwwB,IACL7wB,KAAK8wB,SAAUzwB,GAASwwB,EACvB9C,GAAY5sB,KAAMd,GAASL,KAAK+wB,WAChCjD,GAAU3sB,KAAMd,GAASL,KAAKgxB,aAGhC7Z,EAAO0Z,EAAQ1iB,MAAQnO,KAAKmO,MAAMxJ,OAAQksB,EAAQ1iB,OAAUnO,KAAKmO,MAEjE5L,EAAQ,GAAIjC,IAAOqvB,MAAOiB,GAE1B5vB,EAAImW,EAAK/W,OACDY,KACP6L,EAAOsK,EAAMnW,GACbuB,EAAOsK,GAAS+jB,EAAe/jB,EAmBhC,OAdMtK,GAAMuQ,SACXvQ,EAAMuQ,OAAS8d,EAAcK,YAAcrxB,IAKb,IAA1B2C,EAAMuQ,OAAOtS,WACjB+B,EAAMuQ,OAASvQ,EAAMuQ,OAAOrK,YAK7BlG,EAAM2uB,UAAY3uB,EAAM2uB,QAEjBL,EAAQzvB,OAASyvB,EAAQzvB,OAAQmB,EAAOquB,GAAkBruB,GAIlE4L,MAAO,wHAAwHtJ,MAAM,KAErIisB,YAEAE,UACC7iB,MAAO,4BAA4BtJ,MAAM,KACzCzD,OAAQ,SAAUmB,EAAO4uB,GAOxB,MAJoB,OAAf5uB,EAAMiL,QACVjL,EAAMiL,MAA6B,MAArB2jB,EAASC,SAAmBD,EAASC,SAAWD,EAASE,SAGjE9uB,IAITwuB,YACC5iB,MAAO,mGAAmGtJ,MAAM,KAChHzD,OAAQ,SAAUmB,EAAO4uB,GACxB,GAAI7nB,GAAMgoB,EAAUnoB,EACnB+c,EAASiL,EAASjL,OAClBqL,EAAcJ,EAASI,WAuBxB,OApBoB,OAAfhvB,EAAMivB,OAAqC,MAApBL,EAASM,UACpCH,EAAW/uB,EAAMuQ,OAAO9L,eAAiBpH,GACzCuJ,EAAMmoB,EAASznB,gBACfP,EAAOgoB,EAAShoB,KAEhB/G,EAAMivB,MAAQL,EAASM,SAAYtoB,GAAOA,EAAIuoB,YAAcpoB,GAAQA,EAAKooB,YAAc,IAAQvoB,GAAOA,EAAIwoB,YAAcroB,GAAQA,EAAKqoB,YAAc,GACnJpvB,EAAMqvB,MAAQT,EAASU,SAAY1oB,GAAOA,EAAI2oB,WAAcxoB,GAAQA,EAAKwoB,WAAc,IAAQ3oB,GAAOA,EAAI4oB,WAAczoB,GAAQA,EAAKyoB,WAAc,KAI9IxvB,EAAMyvB,eAAiBT,IAC5BhvB,EAAMyvB,cAAgBT,IAAgBhvB,EAAMuQ,OAASqe,EAASc,UAAYV,GAKrEhvB,EAAMiL,OAAoB3K,SAAXqjB,IACpB3jB,EAAMiL,MAAmB,EAAT0Y,EAAa,EAAe,EAATA,EAAa,EAAe,EAATA,EAAa,EAAI,GAGjE3jB,IAIT8rB,SACC6D,MAECpC,UAAU,GAEXpK,OAEC4J,QAAS,WACR,GAAKtvB,OAASmF,KAAuBnF,KAAK0lB,MACzC,IAEC,MADA1lB,MAAK0lB,SACE,EACN,MAAQriB,MAOZyrB,aAAc,WAEfqD,MACC7C,QAAS,WACR,MAAKtvB,QAASmF,KAAuBnF,KAAKmyB,MACzCnyB,KAAKmyB,QACE,GAFR,QAKDrD,aAAc,YAEfrB,OAEC6B,QAAS,WACR,MAAKhvB,IAAO+F,SAAUrG,KAAM,UAA2B,aAAdA,KAAKK,MAAuBL,KAAKytB,OACzEztB,KAAKytB,SACE,GAFR,QAODyC,SAAU,SAAU3tB,GACnB,MAAOjC,IAAO+F,SAAU9D,EAAMuQ,OAAQ,OAIxCsf,cACC1B,aAAc,SAAUnuB,GAIDM,SAAjBN,EAAM4N,QAAwB5N,EAAMquB,gBACxCruB,EAAMquB,cAAcyB,YAAc9vB,EAAM4N,WAM5CmiB,SAAU,SAAUjyB,EAAMU,EAAMwB,EAAOgwB,GAItC,GAAIlvB,GAAI/C,GAAOiE,OACd,GAAIjE,IAAOqvB,MACXptB,GAEClC,KAAMA,EACNmyB,aAAa,EACb5B,kBAGG2B,GACJjyB,GAAOiC,MAAM+sB,QAASjsB,EAAG,KAAMtC,GAE/BT,GAAOiC,MAAMssB,SAAS5tB,KAAMF,EAAMsC,GAE9BA,EAAE4sB,sBACN1tB,EAAMytB,mBAKT1vB,GAAOiI,YAAc3I,GAASwC,oBAC7B,SAAUrB,EAAMV,EAAM8H,GAChBpH,EAAKqB,qBACTrB,EAAKqB,oBAAqB/B,EAAM8H,GAAQ,IAG1C,SAAUpH,EAAMV,EAAM8H,GACrB,GAAIrF,GAAO,KAAOzC,CAEbU,GAAKuB,oBAIGvB,GAAM+B,KAAWoD,KAC5BnF,EAAM+B,GAAS,MAGhB/B,EAAKuB,YAAaQ,EAAMqF,KAI3B7H,GAAOqvB,MAAQ,SAAU/nB,EAAKuG,GAE7B,MAAOnO,gBAAgBM,IAAOqvB,OAKzB/nB,GAAOA,EAAIvH,MACfL,KAAK4wB,cAAgBhpB,EACrB5H,KAAKK,KAAOuH,EAAIvH,KAIhBL,KAAKiwB,mBAAqBroB,EAAI6qB,kBACH5vB,SAAzB+E,EAAI6qB,kBAEJ7qB,EAAIyqB,eAAgB,EACrBptB,EACAC,GAIDlF,KAAKK,KAAOuH,EAIRuG,GACJ7N,GAAOiE,OAAQvE,KAAMmO,GAItBnO,KAAK0yB,UAAY9qB,GAAOA,EAAI8qB,WAAapyB,GAAO+M,WAGhDrN,KAAMM,GAAOwD,UAAY,IA/BjB,GAAIxD,IAAOqvB,MAAO/nB,EAAKuG,IAoChC7N,GAAOqvB,MAAM3iB,WACZijB,mBAAoB/qB,EACpB6qB,qBAAsB7qB,EACtBsrB,8BAA+BtrB,EAE/B8qB,eAAgB,WACf,GAAI3sB,GAAIrD,KAAK4wB,aAEb5wB,MAAKiwB,mBAAqBhrB,EACpB5B,IAKDA,EAAE2sB,eACN3sB,EAAE2sB,iBAKF3sB,EAAEgvB,aAAc,IAGlB5B,gBAAiB,WAChB,GAAIptB,GAAIrD,KAAK4wB,aAEb5wB,MAAK+vB,qBAAuB9qB,EACtB5B,IAIDA,EAAEotB,iBACNptB,EAAEotB,kBAKHptB,EAAEsvB,cAAe,IAElBC,yBAA0B,WACzB,GAAIvvB,GAAIrD,KAAK4wB,aAEb5wB,MAAKwwB,8BAAgCvrB,EAEhC5B,GAAKA,EAAEuvB,0BACXvvB,EAAEuvB,2BAGH5yB,KAAKywB,oBAKPnwB,GAAOuB,MACNgxB,WAAY,YACZC,WAAY,WACZC,aAAc,cACdC,aAAc,cACZ,SAAUtkB,EAAMyhB,GAClB7vB,GAAOiC,MAAM8rB,QAAS3f,IACrBogB,aAAcqB,EACdpB,SAAUoB,EAEVhoB,OAAQ,SAAU5F,GACjB,GAAIoB,GACHmP,EAAS9S,KACTizB,EAAU1wB,EAAMyvB,cAChBzD,EAAYhsB,EAAMgsB,SASnB,SALM0E,GAAYA,IAAYngB,IAAWxS,GAAOiZ,SAAUzG,EAAQmgB,MACjE1wB,EAAMlC,KAAOkuB,EAAUG,SACvB/qB,EAAM4qB,EAAU1T,QAAQtQ,MAAOvK,KAAMwK,WACrCjI,EAAMlC,KAAO8vB,GAEPxsB,MAMJoB,GAAQmuB,gBAEb5yB,GAAOiC,MAAM8rB,QAAQzH,QACpBsI,MAAO,WAEN,MAAK5uB,IAAO+F,SAAUrG,KAAM,SACpB,MAIRM,IAAOiC,MAAM6F,IAAKpI,KAAM,iCAAkC,SAAUqD,GAEnE,GAAItC,GAAOsC,EAAEyP,OACZqgB,EAAO7yB,GAAO+F,SAAUtF,EAAM,UAAaT,GAAO+F,SAAUtF,EAAM,UAAaA,EAAKoyB,KAAOtwB,MACvFswB,KAAS7yB,GAAOoH,MAAOyrB,EAAM,mBACjC7yB,GAAOiC,MAAM6F,IAAK+qB,EAAM,iBAAkB,SAAU5wB,GACnDA,EAAM6wB,gBAAiB,IAExB9yB,GAAOoH,MAAOyrB,EAAM,iBAAiB,OAMxCzC,aAAc,SAAUnuB,GAElBA,EAAM6wB,uBACH7wB,GAAM6wB,eACRpzB,KAAKyI,aAAelG,EAAMqtB,WAC9BtvB,GAAOiC,MAAM+vB,SAAU,SAAUtyB,KAAKyI,WAAYlG,GAAO,KAK5D8sB,SAAU,WAET,MAAK/uB,IAAO+F,SAAUrG,KAAM,SACpB,MAIRM,IAAOiC,MAAMqnB,OAAQ5pB,KAAM,eAMxB+E,GAAQsuB,gBAEb/yB,GAAOiC,MAAM8rB,QAAQV,QAEpBuB,MAAO,WAEN,MAAKrB,IAAW1sB,KAAMnB,KAAKqG,YAIP,aAAdrG,KAAKK,MAAqC,UAAdL,KAAKK,QACrCC,GAAOiC,MAAM6F,IAAKpI,KAAM,yBAA0B,SAAUuC,GACjB,YAArCA,EAAMquB,cAAc0C,eACxBtzB,KAAKuzB,eAAgB,KAGvBjzB,GAAOiC,MAAM6F,IAAKpI,KAAM,gBAAiB,SAAUuC,GAC7CvC,KAAKuzB,gBAAkBhxB,EAAMqtB,YACjC5vB,KAAKuzB,eAAgB,GAGtBjzB,GAAOiC,MAAM+vB,SAAU,SAAUtyB,KAAMuC,GAAO,OAGzC,OAGRjC,IAAOiC,MAAM6F,IAAKpI,KAAM,yBAA0B,SAAUqD,GAC3D,GAAItC,GAAOsC,EAAEyP,MAER+a,IAAW1sB,KAAMJ,EAAKsF,YAAe/F,GAAOoH,MAAO3G,EAAM,mBAC7DT,GAAOiC,MAAM6F,IAAKrH,EAAM,iBAAkB,SAAUwB,IAC9CvC,KAAKyI,YAAelG,EAAMiwB,aAAgBjwB,EAAMqtB,WACpDtvB,GAAOiC,MAAM+vB,SAAU,SAAUtyB,KAAKyI,WAAYlG,GAAO,KAG3DjC,GAAOoH,MAAO3G,EAAM,iBAAiB,OAKxCoH,OAAQ,SAAU5F,GACjB,GAAIxB,GAAOwB,EAAMuQ,MAGjB,OAAK9S,QAASe,GAAQwB,EAAMiwB,aAAejwB,EAAMqtB,WAA4B,UAAd7uB,EAAKV,MAAkC,aAAdU,EAAKV,KACrFkC,EAAMgsB,UAAU1T,QAAQtQ,MAAOvK,KAAMwK,WAD7C,QAKD6kB,SAAU,WAGT,MAFA/uB,IAAOiC,MAAMqnB,OAAQ5pB,KAAM,aAEnB6tB,GAAW1sB,KAAMnB,KAAKqG,aAM3BtB,GAAQyuB,gBACblzB,GAAOuB,MAAO6jB,MAAO,UAAWyM,KAAM,YAAc,SAAUzjB,EAAMyhB,GAGnE,GAAItV,GAAU,SAAUtY,GACtBjC,GAAOiC,MAAM+vB,SAAUnC,EAAK5tB,EAAMuQ,OAAQxS,GAAOiC,MAAM4tB,IAAK5tB,IAAS,GAGvEjC,IAAOiC,MAAM8rB,QAAS8B,IACrBjB,MAAO,WACN,GAAI/lB,GAAMnJ,KAAKgH,eAAiBhH,KAC/ByzB,EAAWnzB,GAAOoH,MAAOyB,EAAKgnB,EAEzBsD,IACLtqB,EAAIhH,iBAAkBuM,EAAMmM,GAAS,GAEtCva,GAAOoH,MAAOyB,EAAKgnB,GAAOsD,GAAY,GAAM,IAE7CpE,SAAU,WACT,GAAIlmB,GAAMnJ,KAAKgH,eAAiBhH,KAC/ByzB,EAAWnzB,GAAOoH,MAAOyB,EAAKgnB,GAAQ,CAEjCsD,GAILnzB,GAAOoH,MAAOyB,EAAKgnB,EAAKsD,IAHxBtqB,EAAI/G,oBAAqBsM,EAAMmM,GAAS,GACxCva,GAAOqP,YAAaxG,EAAKgnB,QAS9B7vB,GAAOsV,GAAGrR,QAETmvB,GAAI,SAAUxF,EAAOvY,EAAU/S,EAAMgT,EAAiB+d,GACrD,GAAItzB,GAAMuzB,CAGV,IAAsB,gBAAV1F,GAAqB,CAEP,gBAAbvY,KAEX/S,EAAOA,GAAQ+S,EACfA,EAAW9S,OAEZ,KAAMxC,IAAQ6tB,GACbluB,KAAK0zB,GAAIrzB,EAAMsV,EAAU/S,EAAMsrB,EAAO7tB,GAAQszB,EAE/C,OAAO3zB,MAmBR,GAhBa,MAAR4C,GAAsB,MAANgT,GAEpBA,EAAKD,EACL/S,EAAO+S,EAAW9S,QACD,MAAN+S,IACc,gBAAbD,IAEXC,EAAKhT,EACLA,EAAOC,SAGP+S,EAAKhT,EACLA,EAAO+S,EACPA,EAAW9S,SAGR+S,KAAO,EACXA,EAAK1Q,MACC,KAAM0Q,EACZ,MAAO5V,KAaR,OAVa,KAAR2zB,IACJC,EAAShe,EACTA,EAAK,SAAUrT,GAGd,MADAjC,MAASkrB,IAAKjpB,GACPqxB,EAAOrpB,MAAOvK,KAAMwK,YAG5BoL,EAAGxR,KAAOwvB,EAAOxvB,OAAUwvB,EAAOxvB,KAAO9D,GAAO8D,SAE1CpE,KAAK6B,KAAM,WACjBvB,GAAOiC,MAAM6F,IAAKpI,KAAMkuB,EAAOtY,EAAIhT,EAAM+S,MAG3Cge,IAAK,SAAUzF,EAAOvY,EAAU/S,EAAMgT,GACrC,MAAO5V,MAAK0zB,GAAIxF,EAAOvY,EAAU/S,EAAMgT,EAAI,IAE5C4V,IAAK,SAAU0C,EAAOvY,EAAUC,GAC/B,GAAI2Y,GAAWluB,CACf,IAAK6tB,GAASA,EAAM8B,gBAAkB9B,EAAMK,UAQ3C,MANAA,GAAYL,EAAMK,UAClBjuB,GAAQ4tB,EAAMmC,gBAAiB7E,IAC9B+C,EAAUS,UAAYT,EAAUG,SAAW,IAAMH,EAAUS,UAAYT,EAAUG,SACjFH,EAAU5Y,SACV4Y,EAAU1T,SAEJ7a,IAER,IAAsB,gBAAVkuB,GAAqB,CAEhC,IAAM7tB,IAAQ6tB,GACbluB,KAAKwrB,IAAKnrB,EAAMsV,EAAUuY,EAAO7tB,GAElC,OAAOL,MAUR,OARK2V,KAAa,GAA6B,kBAAbA,MAEjCC,EAAKD,EACLA,EAAW9S,QAEP+S,KAAO,IACXA,EAAK1Q,GAEClF,KAAK6B,KAAK,WAChBvB,GAAOiC,MAAMqnB,OAAQ5pB,KAAMkuB,EAAOtY,EAAID,MAIxC2Z,QAAS,SAAUjvB,EAAMuC,GACxB,MAAO5C,MAAK6B,KAAK,WAChBvB,GAAOiC,MAAM+sB,QAASjvB,EAAMuC,EAAM5C,SAGpCurB,eAAgB,SAAUlrB,EAAMuC,GAC/B,GAAI7B,GAAOf,KAAK,EAChB,OAAKe,GACGT,GAAOiC,MAAM+sB,QAASjvB,EAAMuC,EAAM7B,GAAM,GADhD,SAqBF,IAAIyE,IAAY,6JAEfquB,GAAgB,6BAChBC,GAAe,GAAI7T,QAAO,OAASza,GAAY,WAAY,KAC3DuuB,GAAqB,OACrBC,GAAY,0EACZC,GAAW,YACXC,GAAS,UACTC,GAAQ,YACRC,GAAe,0BAEfC,GAAW,oCACXC,GAAc,4BACdjtB,GAAoB,cACpBktB,GAAe,2CAGfC,IACCC,QAAU,EAAG,+BAAgC,aAC7CC,QAAU,EAAG,aAAc,eAC3BC,MAAQ,EAAG,QAAS,UACpBC,OAAS,EAAG,WAAY,aACxBC,OAAS,EAAG,UAAW,YACvBC,IAAM,EAAG,iBAAkB,oBAC3BC,KAAO,EAAG,mCAAoC,uBAC9CC,IAAM,EAAG,qBAAsB,yBAI/B9E,SAAUnrB,GAAQqoB,eAAkB,EAAG,GAAI,KAAS,EAAG,SAAU,WAElE6H,GAAe3vB,EAAoB1F,IACnCs1B,GAAcD,GAAaluB,YAAanH,GAAS+F,cAAc,OAEhE6uB,IAAQW,SAAWX,GAAQC,OAC3BD,GAAQrH,MAAQqH,GAAQY,MAAQZ,GAAQa,SAAWb,GAAQc,QAAUd,GAAQK,MAC7EL,GAAQe,GAAKf,GAAQQ,GAiKrB10B,GAAOiE,QACN6S,MAAO,SAAUrW,EAAMy0B,EAAeC,GACrC,GAAIC,GAAc9T,EAAMxK,EAAOpW,EAAG20B,EACjCC,EAASt1B,GAAOiZ,SAAUxY,EAAKiG,cAAejG,EAW/C,IATKgE,GAAQ4D,YAAcrI,GAAOinB,SAASxmB,KAAU+yB,GAAa3yB,KAAM,IAAMJ,EAAKsF,SAAW,KAC7F+Q,EAAQrW,EAAKssB,WAAW,IAIxB6H,GAAYtsB,UAAY7H,EAAK2H,UAC7BwsB,GAAYva,YAAavD,EAAQ8d,GAAYpuB,eAGvC/B,GAAQuD,cAAiBvD,GAAQwoB,gBACnB,IAAlBxsB,EAAKP,UAAoC,KAAlBO,EAAKP,UAAqBF,GAAOinB,SAASxmB,IAOnE,IAJA20B,EAAe9vB,EAAQwR,GACvBue,EAAc/vB,EAAQ7E,GAGhBC,EAAI,EAA8B,OAA1B4gB,EAAO+T,EAAY30B,MAAeA,EAE1C00B,EAAa10B,IACjBqH,EAAoBuZ,EAAM8T,EAAa10B,GAM1C,IAAKw0B,EACJ,GAAKC,EAIJ,IAHAE,EAAcA,GAAe/vB,EAAQ7E,GACrC20B,EAAeA,GAAgB9vB,EAAQwR,GAEjCpW,EAAI,EAA8B,OAA1B4gB,EAAO+T,EAAY30B,IAAaA,IAC7C2G,EAAgBia,EAAM8T,EAAa10B,QAGpC2G,GAAgB5G,EAAMqW,EAaxB,OARAse,GAAe9vB,EAAQwR,EAAO,UACzBse,EAAat1B,OAAS,GAC1BoH,EAAekuB,GAAeE,GAAUhwB,EAAQ7E,EAAM,WAGvD20B,EAAeC,EAAc/T,EAAO,KAG7BxK,GAGRye,cAAe,SAAU9vB,EAAOF,EAASiwB,EAASC,GAWjD,IAVA,GAAIhf,GAAGhW,EAAMwY,EACZpF,EAAKrO,EAAKqnB,EAAO6I,EACjBjuB,EAAIhC,EAAM3F,OAGV61B,EAAO3wB,EAAoBO,GAE3BqwB,KACAl1B,EAAI,EAEO+G,EAAJ/G,EAAOA,IAGd,GAFAD,EAAOgF,EAAO/E,GAETD,GAAiB,IAATA,EAGZ,GAA6B,WAAxBT,GAAOD,KAAMU,GACjBT,GAAOiG,MAAO2vB,EAAOn1B,EAAKP,UAAaO,GAASA,OAG1C,IAAMozB,GAAMhzB,KAAMJ,GAIlB,CAWN,IAVAoT,EAAMA,GAAO8hB,EAAKlvB,YAAalB,EAAQF,cAAc,QAGrDG,GAAOmuB,GAAS3sB,KAAMvG,KAAY,GAAI,KAAO,GAAIkC,cACjD+yB,EAAOxB,GAAS1uB,IAAS0uB,GAAQtE,SAEjC/b,EAAIvL,UAAYotB,EAAK,GAAKj1B,EAAKgC,QAASixB,GAAW,aAAgBgC,EAAK,GAGxEjf,EAAIif,EAAK,GACDjf,KACP5C,EAAMA,EAAI4Q,SASX,KALMhgB,GAAQmoB,mBAAqB6G,GAAmB5yB,KAAMJ,IAC3Dm1B,EAAM5vB,KAAMT,EAAQswB,eAAgBpC,GAAmBzsB,KAAMvG,GAAO,MAI/DgE,GAAQooB,MAYb,IATApsB,EAAe,UAAR+E,GAAoBouB,GAAO/yB,KAAMJ,GAI3B,YAAZi1B,EAAK,IAAqB9B,GAAO/yB,KAAMJ,GAEtC,EADAoT,EAJDA,EAAIrN,WAOLiQ,EAAIhW,GAAQA,EAAKqF,WAAWhG,OACpB2W,KACFzW,GAAO+F,SAAW8mB,EAAQpsB,EAAKqF,WAAW2Q,GAAK,WAAcoW,EAAM/mB,WAAWhG,QAClFW,EAAK4Z,YAAawS,EAWrB,KANA7sB,GAAOiG,MAAO2vB,EAAO/hB,EAAI/N,YAGzB+N,EAAIwP,YAAc,GAGVxP,EAAIrN,YACXqN,EAAIwG,YAAaxG,EAAIrN,WAItBqN,GAAM8hB,EAAKlR,cAtDXmR,GAAM5vB,KAAMT,EAAQswB,eAAgBp1B,GAuEvC,KAXKoT,GACJ8hB,EAAKtb,YAAaxG,GAKbpP,GAAQuoB,eACbhtB,GAAOQ,KAAM8E,EAAQswB,EAAO,SAAW1vB,GAGxCxF,EAAI,EACKD,EAAOm1B,EAAOl1B,MAItB,KAAK+0B,GAAmD,KAAtCz1B,GAAOe,QAASN,EAAMg1B,MAIxCxc,EAAWjZ,GAAOiZ,SAAUxY,EAAKiG,cAAejG,GAGhDoT,EAAMvO,EAAQqwB,EAAKlvB,YAAahG,GAAQ,UAGnCwY,GACJ/R,EAAe2M,GAIX2hB,GAEJ,IADA/e,EAAI,EACKhW,EAAOoT,EAAK4C,MACfud,GAAYnzB,KAAMJ,EAAKV,MAAQ,KACnCy1B,EAAQxvB,KAAMvF,EAQlB,OAFAoT,GAAM,KAEC8hB,GAGRnxB,UAAW,SAAUiB,EAAsBrC,GAQ1C,IAPA,GAAI3C,GAAMV,EAAM4D,EAAIrB,EACnB5B,EAAI,EACJ6C,EAAcvD,GAAOwD,QACrBE,EAAQ1D,GAAO0D,MACfgB,EAAgBD,GAAQC,cACxBqpB,EAAU/tB,GAAOiC,MAAM8rB,QAEK,OAApBttB,EAAOgF,EAAM/E,IAAaA,IAClC,IAAK0C,GAAcpD,GAAOoD,WAAY3C,MAErCkD,EAAKlD,EAAM8C,GACXjB,EAAOqB,GAAMD,EAAOC,IAER,CACX,GAAKrB,EAAKsF,OACT,IAAM7H,IAAQuC,GAAKsF,OACbmmB,EAAShuB,GACbC,GAAOiC,MAAMqnB,OAAQ7oB,EAAMV,GAI3BC,GAAOiI,YAAaxH,EAAMV,EAAMuC,EAAKuF,OAMnCnE,GAAOC,WAEJD,GAAOC,GAKTe,QACGjE,GAAM8C,SAEK9C,GAAKwG,kBAAoBrB,GAC3CnF,EAAKwG,gBAAiB1D,GAGtB9C,EAAM8C,GAAgB,KAGvBK,EAAWoC,KAAMrC,QAQvB3D,GAAOsV,GAAGrR,QACTiE,KAAM,SAAUM,GACf,MAAO8jB,IAAQ5sB,KAAM,SAAU8I,GAC9B,MAAiBjG,UAAViG,EACNxI,GAAOkI,KAAMxI,MACbA,KAAK+O,QAAQqnB,QAAUp2B,KAAK,IAAMA,KAAK,GAAGgH,eAAiBpH,IAAWu2B,eAAgBrtB,KACrF,KAAMA,EAAO0B,UAAUpK,SAG3Bg2B,OAAQ,WACP,MAAOp2B,MAAKq2B,SAAU7rB,UAAW,SAAUzJ,GAC1C,GAAuB,IAAlBf,KAAKQ,UAAoC,KAAlBR,KAAKQ,UAAqC,IAAlBR,KAAKQ,SAAiB,CACzE,GAAIsS,GAASlM,EAAoB5G,KAAMe,EACvC+R,GAAO/L,YAAahG,OAKvBu1B,QAAS,WACR,MAAOt2B,MAAKq2B,SAAU7rB,UAAW,SAAUzJ,GAC1C,GAAuB,IAAlBf,KAAKQ,UAAoC,KAAlBR,KAAKQ,UAAqC,IAAlBR,KAAKQ,SAAiB,CACzE,GAAIsS,GAASlM,EAAoB5G,KAAMe,EACvC+R,GAAOyjB,aAAcx1B,EAAM+R,EAAOhM,gBAKrC0vB,OAAQ,WACP,MAAOx2B,MAAKq2B,SAAU7rB,UAAW,SAAUzJ,GACrCf,KAAKyI,YACTzI,KAAKyI,WAAW8tB,aAAcx1B,EAAMf,SAKvCy2B,MAAO,WACN,MAAOz2B,MAAKq2B,SAAU7rB,UAAW,SAAUzJ,GACrCf,KAAKyI,YACTzI,KAAKyI,WAAW8tB,aAAcx1B,EAAMf,KAAKqb,gBAK5CuO,OAAQ,SAAUjU,EAAU+gB,GAK3B,IAJA,GAAI31B,GACHgF,EAAQ4P,EAAWrV,GAAOc,OAAQuU,EAAU3V,MAASA,KACrDgB,EAAI,EAEwB,OAApBD,EAAOgF,EAAM/E,IAAaA,IAE5B01B,GAA8B,IAAlB31B,EAAKP,UACtBF,GAAOwE,UAAWc,EAAQ7E,IAGtBA,EAAK0H,aACJiuB,GAAYp2B,GAAOiZ,SAAUxY,EAAKiG,cAAejG,IACrDyG,EAAe5B,EAAQ7E,EAAM,WAE9BA,EAAK0H,WAAWkS,YAAa5Z,GAI/B,OAAOf,OAGR+O,MAAO,WAIN,IAHA,GAAIhO,GACHC,EAAI,EAEuB,OAAnBD,EAAOf,KAAKgB,IAAaA,IAAM,CAOvC,IALuB,IAAlBD,EAAKP,UACTF,GAAOwE,UAAWc,EAAQ7E,GAAM,IAIzBA,EAAK+F,YACZ/F,EAAK4Z,YAAa5Z,EAAK+F,WAKnB/F,GAAKW,SAAWpB,GAAO+F,SAAUtF,EAAM,YAC3CA,EAAKW,QAAQtB,OAAS,GAIxB,MAAOJ,OAGRoX,MAAO,SAAUoe,EAAeC,GAI/B,MAHAD,GAAiC,MAAjBA,GAAwB,EAAQA,EAChDC,EAAyC,MAArBA,EAA4BD,EAAgBC,EAEzDz1B,KAAK4E,IAAI,WACf,MAAOtE,IAAO8W,MAAOpX,KAAMw1B,EAAeC,MAI5CkB,KAAM,SAAU7tB,GACf,MAAO8jB,IAAQ5sB,KAAM,SAAU8I,GAC9B,GAAI/H,GAAOf,KAAM,OAChBgB,EAAI,EACJ+G,EAAI/H,KAAKI,MAEV,IAAeyC,SAAViG,EACJ,MAAyB,KAAlB/H,EAAKP,SACXO,EAAK6H,UAAU7F,QAAS8wB,GAAe,IACvChxB,MAIF,MAAsB,gBAAViG,IAAuBsrB,GAAajzB,KAAM2H,KACnD/D,GAAQqoB,eAAkB0G,GAAa3yB,KAAM2H,KAC7C/D,GAAQmoB,mBAAsB6G,GAAmB5yB,KAAM2H,IACxD0rB,IAAUP,GAAS3sB,KAAMwB,KAAa,GAAI,KAAO,GAAI7F,gBAAkB,CAExE6F,EAAQA,EAAM/F,QAASixB,GAAW,YAElC,KACC,KAAWjsB,EAAJ/G,EAAOA,IAEbD,EAAOf,KAAKgB,OACW,IAAlBD,EAAKP,WACTF,GAAOwE,UAAWc,EAAQ7E,GAAM,IAChCA,EAAK6H,UAAYE,EAInB/H,GAAO,EAGN,MAAMsC,KAGJtC,GACJf,KAAK+O,QAAQqnB,OAAQttB,IAEpB,KAAMA,EAAO0B,UAAUpK,SAG3Bw2B,YAAa,WACZ,GAAIre,GAAM/N,UAAW,EAcrB,OAXAxK,MAAKq2B,SAAU7rB,UAAW,SAAUzJ,GACnCwX,EAAMvY,KAAKyI,WAEXnI,GAAOwE,UAAWc,EAAQ5F,OAErBuY,GACJA,EAAIse,aAAc91B,EAAMf,QAKnBuY,IAAQA,EAAInY,QAAUmY,EAAI/X,UAAYR,KAAOA,KAAK4pB,UAG1D1nB,OAAQ,SAAUyT,GACjB,MAAO3V,MAAK4pB,OAAQjU,GAAU,IAG/B0gB,SAAU,SAAU3f,EAAMD,GAGzBC,EAAO/R,EAAO4F,SAAWmM,EAEzB,IAAIC,GAAOiL,EAAMkV,EAChBhB,EAAS3sB,EAAK8jB,EACdjsB,EAAI,EACJ+G,EAAI/H,KAAKI,OACT22B,EAAM/2B,KACNg3B,EAAWjvB,EAAI,EACfe,EAAQ4N,EAAK,GACb7V,EAAaP,GAAOO,WAAYiI,EAGjC,IAAKjI,GACDkH,EAAI,GAAsB,gBAAVe,KAChB/D,GAAQyoB,YAAc6G,GAASlzB,KAAM2H,GACxC,MAAO9I,MAAK6B,KAAK,SAAUuJ,GAC1B,GAAIsc,GAAOqP,EAAIngB,GAAIxL,EACdvK,KACJ6V,EAAK,GAAK5N,EAAM7H,KAAMjB,KAAMoL,EAAOsc,EAAKiP,SAEzCjP,EAAK2O,SAAU3f,EAAMD,IAIvB,IAAK1O,IACJklB,EAAW3sB,GAAOu1B,cAAenf,EAAM1W,KAAM,GAAIgH,eAAe,EAAOhH,MACvE2W,EAAQsW,EAASnmB,WAEmB,IAA/BmmB,EAAS7mB,WAAWhG,SACxB6sB,EAAWtW,GAGPA,GAAQ,CAMZ,IALAmf,EAAUx1B,GAAOsE,IAAKgB,EAAQqnB,EAAU,UAAYhmB,GACpD6vB,EAAahB,EAAQ11B,OAIT2H,EAAJ/G,EAAOA,IACd4gB,EAAOqL,EAEFjsB,IAAMg2B,IACVpV,EAAOthB,GAAO8W,MAAOwK,GAAM,GAAM,GAG5BkV,GACJx2B,GAAOiG,MAAOuvB,EAASlwB,EAAQgc,EAAM,YAIvCnL,EAASxV,KAAMjB,KAAKgB,GAAI4gB,EAAM5gB,EAG/B,IAAK81B,EAOJ,IANA3tB,EAAM2sB,EAASA,EAAQ11B,OAAS,GAAI4G,cAGpC1G,GAAOsE,IAAKkxB,EAAS1uB,GAGfpG,EAAI,EAAO81B,EAAJ91B,EAAgBA,IAC5B4gB,EAAOkU,EAAS90B,GACXszB,GAAYnzB,KAAMygB,EAAKvhB,MAAQ,MAClCC,GAAOoH,MAAOka,EAAM,eAAkBthB,GAAOiZ,SAAUpQ,EAAKyY,KAExDA,EAAKha,IAEJtH,GAAO22B,UACX32B,GAAO22B,SAAUrV,EAAKha,KAGvBtH,GAAOsX,YAAcgK,EAAKpZ,MAAQoZ,EAAK+B,aAAe/B,EAAKhZ,WAAa,IAAK7F,QAASwxB,GAAc,KAOxGtH,GAAWtW,EAAQ,KAIrB,MAAO3W,SAITM,GAAOuB,MACNwH,SAAU,SACV6tB,UAAW,UACXX,aAAc,SACdY,YAAa,QACbC,WAAY,eACV,SAAUt0B,EAAMquB,GAClB7wB,GAAOsV,GAAI9S,GAAS,SAAU6S,GAO7B,IANA,GAAI5P,GACH/E,EAAI,EACJ2C,KACA0zB,EAAS/2B,GAAQqV,GACjBkB,EAAOwgB,EAAOj3B,OAAS,EAEXyW,GAAL7V,EAAWA,IAClB+E,EAAQ/E,IAAM6V,EAAO7W,KAAOA,KAAKoX,OAAM,GACvC9W,GAAQ+2B,EAAOr2B,IAAMmwB,GAAYprB,GAGjCO,EAAKiE,MAAO5G,EAAKoC,EAAMsE,MAGxB,OAAOrK,MAAKuW,UAAW5S,KAKzB,IAAIiG,IACHD,OA8DD,WACC,GAAI2tB,EAEJvyB,IAAQwK,iBAAmB,WAC1B,GAA4B,MAAvB+nB,EACJ,MAAOA,EAIRA,IAAsB,CAGtB,IAAI5c,GAAKpR,EAAMsiB,CAGf,OADAtiB,GAAO1J,GAASqG,qBAAsB,QAAU,GAC1CqD,GAASA,EAAKF,OAMpBsR,EAAM9a,GAAS+F,cAAe,OAC9BimB,EAAYhsB,GAAS+F,cAAe,OACpCimB,EAAUxiB,MAAMyiB,QAAU,iEAC1BviB,EAAKvC,YAAa6kB,GAAY7kB,YAAa2T,SAI/BA,GAAItR,MAAMkG,OAASpJ,KAE9BwU,EAAItR,MAAMyiB,QAGT,iJAGDnR,EAAI3T,YAAanH,GAAS+F,cAAe,QAAUyD,MAAMwE,MAAQ,MACjE0pB,EAA0C,IAApB5c,EAAItO,aAG3B9C,EAAKqR,YAAaiR,GAEX0L,GA3BP,UA+BF,IAMIhrB,IAAWE,GANX+qB,GAAU,UAEV9qB,GAAY,GAAIwT,QAAQ,KAAOwM,GAAO,kBAAmB,KAK5D+K,GAAY,2BAERz3B,GAAO03B,kBACXnrB,GAAY,SAAUvL,GAIrB,MAAKA,GAAKiG,cAAcmO,YAAYuiB,OAC5B32B,EAAKiG,cAAcmO,YAAYsiB,iBAAkB12B,EAAM,MAGxDhB,EAAO03B,iBAAkB12B,EAAM,OAGvCyL,GAAS,SAAUzL,EAAM+B,EAAM60B,GAC9B,GAAI/pB,GAAOgqB,EAAUC,EAAUl0B,EAC9ByF,EAAQrI,EAAKqI,KAqCd,OAnCAuuB,GAAWA,GAAYrrB,GAAWvL,GAGlC4C,EAAMg0B,EAAWA,EAASG,iBAAkBh1B,IAAU60B,EAAU70B,GAASD,OAEpE80B,IAES,KAARh0B,GAAerD,GAAOiZ,SAAUxY,EAAKiG,cAAejG,KACxD4C,EAAMrD,GAAO8I,MAAOrI,EAAM+B,IAOtB2J,GAAUtL,KAAMwC,IAAS4zB,GAAQp2B,KAAM2B,KAG3C8K,EAAQxE,EAAMwE,MACdgqB,EAAWxuB,EAAMwuB;AACjBC,EAAWzuB,EAAMyuB,SAGjBzuB,EAAMwuB,SAAWxuB,EAAMyuB,SAAWzuB,EAAMwE,MAAQjK,EAChDA,EAAMg0B,EAAS/pB,MAGfxE,EAAMwE,MAAQA,EACdxE,EAAMwuB,SAAWA,EACjBxuB,EAAMyuB,SAAWA,IAMJh1B,SAARc,EACNA,EACAA,EAAM,KAEG/D,GAASiK,gBAAgBkuB,eACpCzrB,GAAY,SAAUvL,GACrB,MAAOA,GAAKg3B,cAGbvrB,GAAS,SAAUzL,EAAM+B,EAAM60B,GAC9B,GAAIK,GAAMC,EAAIC,EAAQv0B,EACrByF,EAAQrI,EAAKqI,KAyCd,OAvCAuuB,GAAWA,GAAYrrB,GAAWvL,GAClC4C,EAAMg0B,EAAWA,EAAU70B,GAASD,OAIxB,MAAPc,GAAeyF,GAASA,EAAOtG,KACnCa,EAAMyF,EAAOtG,IAUT2J,GAAUtL,KAAMwC,KAAU6zB,GAAUr2B,KAAM2B,KAG9Ck1B,EAAO5uB,EAAM4uB,KACbC,EAAKl3B,EAAKo3B,aACVD,EAASD,GAAMA,EAAGD,KAGbE,IACJD,EAAGD,KAAOj3B,EAAKg3B,aAAaC,MAE7B5uB,EAAM4uB,KAAgB,aAATl1B,EAAsB,MAAQa,EAC3CA,EAAMyF,EAAMgvB,UAAY,KAGxBhvB,EAAM4uB,KAAOA,EACRE,IACJD,EAAGD,KAAOE,IAMGr1B,SAARc,EACNA,EACAA,EAAM,IAAM,SAmCf,WAkEC,QAAS00B,KAER,GAAI3d,GAAKpR,EAAMsiB,EAAWpY,CAE1BlK,GAAO1J,GAASqG,qBAAsB,QAAU,GAC1CqD,GAASA,EAAKF,QAMpBsR,EAAM9a,GAAS+F,cAAe,OAC9BimB,EAAYhsB,GAAS+F,cAAe,OACpCimB,EAAUxiB,MAAMyiB,QAAU,iEAC1BviB,EAAKvC,YAAa6kB,GAAY7kB,YAAa2T,GAE3CA,EAAItR,MAAMyiB,QAGT,uKAMDyM,EAAmBC,GAAuB,EAC1CC,GAAyB,EAGpBz4B,EAAO03B,mBACXa,EAA0E,QAArDv4B,EAAO03B,iBAAkB/c,EAAK,WAAeqH,IAClEwW,EACwE,SAArEx4B,EAAO03B,iBAAkB/c,EAAK,QAAY9M,MAAO,QAAUA,MAM9D4F,EAAWkH,EAAI3T,YAAanH,GAAS+F,cAAe,QAGpD6N,EAASpK,MAAMyiB,QAAUnR,EAAItR,MAAMyiB,QAGlC,8HAEDrY,EAASpK,MAAMqvB,YAAcjlB,EAASpK,MAAMwE,MAAQ,IACpD8M,EAAItR,MAAMwE,MAAQ,MAElB4qB,GACE7rB,YAAc5M,EAAO03B,iBAAkBjkB,EAAU,WAAeilB,aAElE/d,EAAIC,YAAanH,IAUlBkH,EAAI9R,UAAY,8CAChB4K,EAAWkH,EAAIzU,qBAAsB,MACrCuN,EAAU,GAAIpK,MAAMyiB,QAAU,2CAC9B6M,EAA0D,IAA/BllB,EAAU,GAAInH,aACpCqsB,IACJllB,EAAU,GAAIpK,MAAMG,QAAU,GAC9BiK,EAAU,GAAIpK,MAAMG,QAAU,OAC9BmvB,EAA0D,IAA/BllB,EAAU,GAAInH,cAG1C/C,EAAKqR,YAAaiR,IAxInB,GAAIlR,GAAKtR,EAAO4R,EAAGsd,EAAkBC,EACpCG,EAA0BF,CAG3B9d,GAAM9a,GAAS+F,cAAe,OAC9B+U,EAAI9R,UAAY,qEAChBoS,EAAIN,EAAIzU,qBAAsB,KAAO,GACrCmD,EAAQ4R,GAAKA,EAAE5R,MAGTA,IAINA,EAAMyiB,QAAU,wBAIhB9mB,GAAQ4I,QAA4B,QAAlBvE,EAAMuE,QAIxB5I,GAAQ4zB,WAAavvB,EAAMuvB,SAE3Bje,EAAItR,MAAMwvB,eAAiB,cAC3Ble,EAAI2S,WAAW,GAAOjkB,MAAMwvB,eAAiB,GAC7C7zB,GAAQ8zB,gBAA+C,gBAA7Bne,EAAItR,MAAMwvB,eAIpC7zB,GAAQwH,UAAgC,KAApBnD,EAAMmD,WAA2C,KAAvBnD,EAAM0vB,cACzB,KAA1B1vB,EAAM2vB,gBAEPz4B,GAAOiE,OAAOQ,IACbi0B,sBAAuB,WAItB,MAHiC,OAA5BN,GACJL,IAEMK,GAGRhsB,kBAAmB,WAIlB,MAH6B,OAAxB6rB,GACJF,IAEME,GAGRU,cAAe,WAId,MAHyB,OAApBX,GACJD,IAEMC,GAIRY,oBAAqB,WAIpB,MAH+B,OAA1BV,GACJH,IAEMG,SAmFVl4B,GAAO64B,KAAO,SAAUp4B,EAAMW,EAAS+U,EAAUC,GAChD,GAAI/S,GAAKb,EACRgW,IAGD,KAAMhW,IAAQpB,GACboX,EAAKhW,GAAS/B,EAAKqI,MAAOtG,GAC1B/B,EAAKqI,MAAOtG,GAASpB,EAASoB,EAG/Ba,GAAM8S,EAASlM,MAAOxJ,EAAM2V,MAG5B,KAAM5T,IAAQpB,GACbX,EAAKqI,MAAOtG,GAASgW,EAAKhW,EAG3B,OAAOa,GAIR,IACEy1B,IAAS,kBACVC,GAAW,wBAIXC,GAAe,4BACf7tB,GAAY,GAAIwU,QAAQ,KAAOwM,GAAO,SAAU,KAChD8M,GAAU,GAAItZ,QAAQ,YAAcwM,GAAO,IAAK,KAEhD+M,IAAYC,SAAU,WAAYC,WAAY,SAAUnwB,QAAS,SACjEowB,IACCC,cAAe,IACfC,WAAY,OAGb9uB,IAAgB,SAAU,IAAK,MAAO,KAuKvCzK,IAAOiE,QAGNwL,UACCpC,SACCtD,IAAK,SAAUtJ,EAAM42B,GACpB,GAAKA,EAAW,CAEf,GAAIh0B,GAAM6I,GAAQzL,EAAM,UACxB,OAAe,KAAR4C,EAAa,IAAMA,MAO9Bm2B,WACCC,aAAe,EACfC,aAAe,EACfC,UAAY,EACZC,YAAc,EACdL,YAAc,EACdM,YAAc,EACdxsB,SAAW,EACXysB,OAAS,EACTC,SAAW,EACXC,QAAU,EACVC,QAAU,EACVjrB,MAAQ,GAKTkrB,UAECC,QAAS11B,GAAQ4zB,SAAW,WAAa,cAI1CvvB,MAAO,SAAUrI,EAAM+B,EAAMgG,EAAO+C,GAEnC,GAAM9K,GAA0B,IAAlBA,EAAKP,UAAoC,IAAlBO,EAAKP,UAAmBO,EAAKqI,MAAlE,CAKA,GAAIzF,GAAKtD,EAAMiO,EACdxD,EAAWxK,GAAOkE,UAAW1B,GAC7BsG,EAAQrI,EAAKqI,KASd,IAPAtG,EAAOxC,GAAOk6B,SAAU1vB,KAAgBxK,GAAOk6B,SAAU1vB,GAAaL,EAAgBrB,EAAO0B,IAI7FwD,EAAQhO,GAAOyP,SAAUjN,IAAUxC,GAAOyP,SAAUjF,GAGrCjI,SAAViG,EAsCJ,MAAKwF,IAAS,OAASA,IAAqDzL,UAA3Cc,EAAM2K,EAAMjE,IAAKtJ,GAAM,EAAO8K,IACvDlI,EAIDyF,EAAOtG,EAhCd,IAVAzC,QAAcyI,GAGA,WAATzI,IAAsBsD,EAAM41B,GAAQjyB,KAAMwB,MAC9CA,GAAUnF,EAAI,GAAK,GAAMA,EAAI,GAAKgJ,WAAYrM,GAAOmJ,IAAK1I,EAAM+B,IAEhEzC,EAAO,UAIM,MAATyI,GAAiBA,IAAUA,IAKlB,WAATzI,GAAsBC,GAAOw5B,UAAWhvB,KAC5ChC,GAAS,MAKJ/D,GAAQ8zB,iBAA6B,KAAV/vB,GAA+C,IAA/BhG,EAAKuS,QAAQ,gBAC7DjM,EAAOtG,GAAS,aAIXwL,GAAW,OAASA,IAAwDzL,UAA7CiG,EAAQwF,EAAMyoB,IAAKh2B,EAAM+H,EAAO+C,MAIpE,IACCzC,EAAOtG,GAASgG,EACf,MAAMzF,OAcXoG,IAAK,SAAU1I,EAAM+B,EAAM+I,EAAOE,GACjC,GAAIuK,GAAKtK,EAAKsC,EACbxD,EAAWxK,GAAOkE,UAAW1B,EAyB9B,OAtBAA,GAAOxC,GAAOk6B,SAAU1vB,KAAgBxK,GAAOk6B,SAAU1vB,GAAaL,EAAgB1J,EAAKqI,MAAO0B,IAIlGwD,EAAQhO,GAAOyP,SAAUjN,IAAUxC,GAAOyP,SAAUjF,GAG/CwD,GAAS,OAASA,KACtBtC,EAAMsC,EAAMjE,IAAKtJ,GAAM,EAAM8K,IAIjBhJ,SAARmJ,IACJA,EAAMQ,GAAQzL,EAAM+B,EAAMiJ,IAId,WAARC,GAAoBlJ,IAAQ62B,MAChC3tB,EAAM2tB,GAAoB72B,IAIZ,KAAV+I,GAAgBA,GACpByK,EAAM3J,WAAYX,GACXH,KAAU,GAAQvL,GAAOoX,UAAWpB,GAAQA,GAAO,EAAItK,GAExDA,KAIT1L,GAAOuB,MAAO,SAAU,SAAW,SAAUb,EAAG8B,GAC/CxC,GAAOyP,SAAUjN,IAChBuH,IAAK,SAAUtJ,EAAM42B,EAAU9rB,GAC9B,MAAK8rB,GAGG2B,GAAan4B,KAAMb,GAAOmJ,IAAK1I,EAAM,aAAsC,IAArBA,EAAKqL,YACjE9L,GAAO64B,KAAMp4B,EAAMy4B,GAAS,WAC3B,MAAOttB,GAAkBnL,EAAM+B,EAAM+I,KAEtCK,EAAkBnL,EAAM+B,EAAM+I,GAPhC,QAWDkrB,IAAK,SAAUh2B,EAAM+H,EAAO+C,GAC3B,GAAIE,GAASF,GAASS,GAAWvL,EACjC,OAAOuK,GAAmBvK,EAAM+H,EAAO+C,EACtCD,EACC7K,EACA+B,EACA+I,EACA9G,GAAQwH,WAAgE,eAAnDjM,GAAOmJ,IAAK1I,EAAM,aAAa,EAAOgL,GAC3DA,GACG,OAMFhH,GAAQ4I,UACbrN,GAAOyP,SAASpC,SACftD,IAAK,SAAUtJ,EAAM42B,GAEpB,MAAO0B,IAASl4B,MAAOw2B,GAAY52B,EAAKg3B,aAAeh3B,EAAKg3B,aAAa32B,OAASL,EAAKqI,MAAMhI,SAAW,IACrG,IAAOuL,WAAYsT,OAAOya,IAAS,GACrC/C,EAAW,IAAM,IAGnBZ,IAAK,SAAUh2B,EAAM+H,GACpB,GAAIM,GAAQrI,EAAKqI,MAChB2uB,EAAeh3B,EAAKg3B,aACpBpqB,EAAUrN,GAAOoX,UAAW5O,GAAU,iBAA2B,IAARA,EAAc,IAAM,GAC7E1H,EAAS22B,GAAgBA,EAAa32B,QAAUgI,EAAMhI,QAAU,EAIjEgI,GAAMkG,KAAO,GAINxG,GAAS,GAAe,KAAVA,IAC6B,KAAhDxI,GAAOuI,KAAMzH,EAAO2B,QAASq2B,GAAQ,MACrChwB,EAAM7B,kBAKP6B,EAAM7B,gBAAiB,UAGR,KAAVuB,GAAgBivB,IAAiBA,EAAa32B,UAMpDgI,EAAMhI,OAASg4B,GAAOj4B,KAAMC,GAC3BA,EAAO2B,QAASq2B,GAAQzrB,GACxBvM,EAAS,IAAMuM,MAKnBrN,GAAOyP,SAAS0oB,YAAcvuB,EAAcnF,GAAQm0B,oBACnD,SAAUn4B,EAAM42B,GACf,MAAKA,GAGGr3B,GAAO64B,KAAMp4B,GAAQwI,QAAW,gBACtCiD,IAAUzL,EAAM,gBAJlB,SAUFT,GAAOuB,MACN84B,OAAQ,GACRC,QAAS,GACTC,OAAQ,SACN,SAAUnmB,EAAQomB,GACpBx6B,GAAOyP,SAAU2E,EAASomB,IACzB9qB,OAAQ,SAAUlH,GAOjB,IANA,GAAI9H,GAAI,EACP+5B,KAGAC,EAAyB,gBAAVlyB,GAAqBA,EAAMjE,MAAM,MAASiE,GAE9C,EAAJ9H,EAAOA,IACd+5B,EAAUrmB,EAASzI,GAAWjL,GAAM85B,GACnCE,EAAOh6B,IAAOg6B,EAAOh6B,EAAI,IAAOg6B,EAAO,EAGzC,OAAOD,KAIHxD,GAAQp2B,KAAMuT,KACnBpU,GAAOyP,SAAU2E,EAASomB,GAAS/D,IAAMzrB,KAI3ChL,GAAOsV,GAAGrR,QACTkF,IAAK,SAAU3G,EAAMgG,GACpB,MAAO8jB,IAAQ5sB,KAAM,SAAUe,EAAM+B,EAAMgG,GAC1C,GAAIiD,GAAQ+K,EACXlS,KACA5D,EAAI,CAEL,IAAKV,GAAOoE,QAAS5B,GAAS,CAI7B,IAHAiJ,EAASO,GAAWvL,GACpB+V,EAAMhU,EAAK1C,OAEC0W,EAAJ9V,EAASA,IAChB4D,EAAK9B,EAAM9B,IAAQV,GAAOmJ,IAAK1I,EAAM+B,EAAM9B,IAAK,EAAO+K,EAGxD,OAAOnH,GAGR,MAAiB/B,UAAViG,EACNxI,GAAO8I,MAAOrI,EAAM+B,EAAMgG,GAC1BxI,GAAOmJ,IAAK1I,EAAM+B,IACjBA,EAAMgG,EAAO0B,UAAUpK,OAAS,IAEpC6K,KAAM,WACL,MAAOD,GAAUhL,MAAM,IAExB0P,KAAM,WACL,MAAO1E,GAAUhL,OAElBqO,OAAQ,SAAUkG,GACjB,MAAsB,iBAAVA,GACJA,EAAQvU,KAAKiL,OAASjL,KAAK0P,OAG5B1P,KAAK6B,KAAK,WACXwJ,GAAUrL,MACdM,GAAQN,MAAOiL,OAEf3K,GAAQN,MAAO0P,YAUnBpP,GAAOsM,MAAQA,EAEfA,EAAMI,WACLoJ,YAAaxJ,EACbK,KAAM,SAAUlM,EAAMW,EAASmL,EAAMC,EAAKC,EAAQkuB,GACjDj7B,KAAKe,KAAOA,EACZf,KAAK6M,KAAOA,EACZ7M,KAAK+M,OAASA,GAAU,QACxB/M,KAAK0B,QAAUA,EACf1B,KAAK4P,MAAQ5P,KAAKqN,IAAMrN,KAAKuB,MAC7BvB,KAAK8M,IAAMA,EACX9M,KAAKi7B,KAAOA,IAAU36B,GAAOw5B,UAAWjtB,GAAS,GAAK,OAEvDtL,IAAK,WACJ,GAAI+M,GAAQ1B,EAAMsuB,UAAWl7B,KAAK6M,KAElC,OAAOyB,IAASA,EAAMjE,IACrBiE,EAAMjE,IAAKrK,MACX4M,EAAMsuB,UAAUhL,SAAS7lB,IAAKrK,OAEhCgR,IAAK,SAAUF,GACd,GAAIqqB,GACH7sB,EAAQ1B,EAAMsuB,UAAWl7B,KAAK6M,KAoB/B,OAjBC7M,MAAKuoB,IAAM4S,EADPn7B,KAAK0B,QAAQkP,SACEtQ,GAAOyM,OAAQ/M,KAAK+M,QACtC+D,EAAS9Q,KAAK0B,QAAQkP,SAAWE,EAAS,EAAG,EAAG9Q,KAAK0B,QAAQkP,UAG3CE,EAEpB9Q,KAAKqN,KAAQrN,KAAK8M,IAAM9M,KAAK4P,OAAUurB,EAAQn7B,KAAK4P,MAE/C5P,KAAK0B,QAAQ05B,MACjBp7B,KAAK0B,QAAQ05B,KAAKn6B,KAAMjB,KAAKe,KAAMf,KAAKqN,IAAKrN,MAGzCsO,GAASA,EAAMyoB,IACnBzoB,EAAMyoB,IAAK/2B,MAEX4M,EAAMsuB,UAAUhL,SAAS6G,IAAK/2B,MAExBA,OAIT4M,EAAMI,UAAUC,KAAKD,UAAYJ,EAAMI,UAEvCJ,EAAMsuB,WACLhL,UACC7lB,IAAK,SAAU0D,GACd,GAAIoC,EAEJ,OAAiC,OAA5BpC,EAAMhN,KAAMgN,EAAMlB,OACpBkB,EAAMhN,KAAKqI,OAA2C,MAAlC2E,EAAMhN,KAAKqI,MAAO2E,EAAMlB,OAQ/CsD,EAAS7P,GAAOmJ,IAAKsE,EAAMhN,KAAMgN,EAAMlB,KAAM,IAErCsD,GAAqB,SAAXA,EAAwBA,EAAJ,GAT9BpC,EAAMhN,KAAMgN,EAAMlB,OAW3BkqB,IAAK,SAAUhpB,GAGTzN,GAAOmR,GAAG2pB,KAAMrtB,EAAMlB,MAC1BvM,GAAOmR,GAAG2pB,KAAMrtB,EAAMlB,MAAQkB,GACnBA,EAAMhN,KAAKqI,QAAgE,MAArD2E,EAAMhN,KAAKqI,MAAO9I,GAAOk6B,SAAUzsB,EAAMlB,QAAoBvM,GAAOyP,SAAUhC,EAAMlB,OACrHvM,GAAO8I,MAAO2E,EAAMhN,KAAMgN,EAAMlB,KAAMkB,EAAMV,IAAMU,EAAMktB,MAExDltB,EAAMhN,KAAMgN,EAAMlB,MAASkB,EAAMV,OASrCT,EAAMsuB,UAAUpJ,UAAYllB,EAAMsuB,UAAUxJ,YAC3CqF,IAAK,SAAUhpB,GACTA,EAAMhN,KAAKP,UAAYuN,EAAMhN,KAAK0H,aACtCsF,EAAMhN,KAAMgN,EAAMlB,MAASkB,EAAMV,OAKpC/M,GAAOyM,QACNsuB,OAAQ,SAAUC,GACjB,MAAOA,IAERC,MAAO,SAAUD,GAChB,MAAO,GAAM5vB,KAAK8vB,IAAKF,EAAI5vB,KAAK+vB,IAAO,IAIzCn7B,GAAOmR,GAAK7E,EAAMI,UAAUC,KAG5B3M,GAAOmR,GAAG2pB,OAKV,IACChuB,IAAOsuB,GACPlsB,GAAW,yBACXmsB,GAAS,GAAI1b,QAAQ,iBAAmBwM,GAAO,cAAe,KAC9DmP,GAAO,cACPvrB,IAAwBnC,GACxBD,IACC4tB,KAAO,SAAUhvB,EAAM/D,GACtB,GAAIiF,GAAQ/N,KAAK6N,YAAahB,EAAM/D,GACnCgK,EAAS/E,EAAMxM,MACfy5B,EAAQW,GAAOr0B,KAAMwB,GACrBmyB,EAAOD,GAASA,EAAO,KAAS16B,GAAOw5B,UAAWjtB,GAAS,GAAK,MAGhE+C,GAAUtP,GAAOw5B,UAAWjtB,IAAmB,OAATouB,IAAkBnoB,IACvD6oB,GAAOr0B,KAAMhH,GAAOmJ,IAAKsE,EAAMhN,KAAM8L,IACtCivB,EAAQ,EACRC,EAAgB,EAEjB,IAAKnsB,GAASA,EAAO,KAAQqrB,EAAO,CAEnCA,EAAOA,GAAQrrB,EAAO,GAGtBorB,EAAQA,MAGRprB,GAASkD,GAAU,CAEnB,GAGCgpB,GAAQA,GAAS,KAGjBlsB,GAAgBksB,EAChBx7B,GAAO8I,MAAO2E,EAAMhN,KAAM8L,EAAM+C,EAAQqrB,SAI/Ba,KAAWA,EAAQ/tB,EAAMxM,MAAQuR,IAAqB,IAAVgpB,KAAiBC,GAaxE,MATKf,KACJprB,EAAQ7B,EAAM6B,OAASA,IAAUkD,GAAU,EAC3C/E,EAAMktB,KAAOA,EAEbltB,EAAMjB,IAAMkuB,EAAO,GAClBprB,GAAUorB,EAAO,GAAM,GAAMA,EAAO,IACnCA,EAAO,IAGHjtB,IA0UVzN,IAAO2P,UAAY3P,GAAOiE,OAAQ0L,GACjC+rB,QAAS,SAAU7tB,EAAOsI,GACpBnW,GAAOO,WAAYsN,IACvBsI,EAAWtI,EACXA,GAAU,MAEVA,EAAQA,EAAMtJ,MAAM,IAOrB,KAJA,GAAIgI,GACHzB,EAAQ,EACRhL,EAAS+N,EAAM/N,OAEAA,EAARgL,EAAiBA,IACxByB,EAAOsB,EAAO/C,GACd6C,GAAUpB,GAASoB,GAAUpB,OAC7BoB,GAAUpB,GAAOuF,QAASqE,IAI5BwlB,UAAW,SAAUxlB,EAAU6f,GACzBA,EACJjmB,GAAoB+B,QAASqE,GAE7BpG,GAAoB/J,KAAMmQ,MAK7BnW,GAAO47B,MAAQ,SAAUA,EAAOnvB,EAAQ6I,GACvC,GAAIumB,GAAMD,GAA0B,gBAAVA,GAAqB57B,GAAOiE,UAAY23B,IACjEtqB,SAAUgE,IAAOA,GAAM7I,GACtBzM,GAAOO,WAAYq7B,IAAWA,EAC/BtrB,SAAUsrB,EACVnvB,OAAQ6I,GAAM7I,GAAUA,IAAWzM,GAAOO,WAAYkM,IAAYA,EAwBnE,OArBAovB,GAAIvrB,SAAWtQ,GAAOmR,GAAG+Z,IAAM,EAA4B,gBAAjB2Q,GAAIvrB,SAAwBurB,EAAIvrB,SACzEurB,EAAIvrB,WAAYtQ,IAAOmR,GAAG2qB,OAAS97B,GAAOmR,GAAG2qB,OAAQD,EAAIvrB,UAAatQ,GAAOmR,GAAG2qB,OAAOlM,UAGtE,MAAbiM,EAAIvtB,OAAiButB,EAAIvtB,SAAU,KACvCutB,EAAIvtB,MAAQ,MAIbutB,EAAIrjB,IAAMqjB,EAAIvqB,SAEduqB,EAAIvqB,SAAW,WACTtR,GAAOO,WAAYs7B,EAAIrjB,MAC3BqjB,EAAIrjB,IAAI7X,KAAMjB,MAGVm8B,EAAIvtB,OACRtO,GAAO6rB,QAASnsB,KAAMm8B,EAAIvtB,QAIrButB,GAGR77B,GAAOsV,GAAGrR,QACT83B,OAAQ,SAAUH,EAAOI,EAAIvvB,EAAQ0J,GAGpC,MAAOzW,MAAKoB,OAAQiK,IAAW5B,IAAK,UAAW,GAAIwB,OAGjD6B,MAAMyvB,SAAU5uB,QAAS2uB,GAAMJ,EAAOnvB,EAAQ0J,IAEjD8lB,QAAS,SAAU1vB,EAAMqvB,EAAOnvB,EAAQ0J,GACvC,GAAI1H,GAAQzO,GAAOiD,cAAesJ,GACjC2vB,EAASl8B,GAAO47B,MAAOA,EAAOnvB,EAAQ0J,GACtCgmB,EAAc,WAEb,GAAIhuB,GAAOwB,EAAWjQ,KAAMM,GAAOiE,UAAYsI,GAAQ2vB,IAGlDztB,GAASzO,GAAOoH,MAAO1H,KAAM,YACjCyO,EAAK6C,MAAM,GAKd,OAFCmrB,GAAYC,OAASD,EAEf1tB,GAASytB,EAAO5tB,SAAU,EAChC5O,KAAK6B,KAAM46B,GACXz8B,KAAK4O,MAAO4tB,EAAO5tB,MAAO6tB,IAE5BnrB,KAAM,SAAUjR,EAAMisB,EAAY/a,GACjC,GAAIorB,GAAY,SAAUruB,GACzB,GAAIgD,GAAOhD,EAAMgD,WACVhD,GAAMgD,KACbA,EAAMC,GAYP,OATqB,gBAATlR,KACXkR,EAAU+a,EACVA,EAAajsB,EACbA,EAAOwC,QAEHypB,GAAcjsB,KAAS,GAC3BL,KAAK4O,MAAOvO,GAAQ,SAGdL,KAAK6B,KAAK,WAChB,GAAIsqB,IAAU,EACb/gB,EAAgB,MAAR/K,GAAgBA,EAAO,aAC/Bu8B,EAASt8B,GAAOs8B,OAChBh6B,EAAOtC,GAAOoH,MAAO1H,KAEtB,IAAKoL,EACCxI,EAAMwI,IAAWxI,EAAMwI,GAAQkG,MACnCqrB,EAAW/5B,EAAMwI,QAGlB,KAAMA,IAASxI,GACTA,EAAMwI,IAAWxI,EAAMwI,GAAQkG,MAAQsqB,GAAKz6B,KAAMiK,IACtDuxB,EAAW/5B,EAAMwI,GAKpB,KAAMA,EAAQwxB,EAAOx8B,OAAQgL,KACvBwxB,EAAQxxB,GAAQrK,OAASf,MAAiB,MAARK,GAAgBu8B,EAAQxxB,GAAQwD,QAAUvO,IAChFu8B,EAAQxxB,GAAQqD,KAAK6C,KAAMC,GAC3B4a,GAAU,EACVyQ,EAAO3lB,OAAQ7L,EAAO,KAOnB+gB,IAAY5a,IAChBjR,GAAO6rB,QAASnsB,KAAMK,MAIzBq8B,OAAQ,SAAUr8B,GAIjB,MAHKA,MAAS,IACbA,EAAOA,GAAQ,MAETL,KAAK6B,KAAK,WAChB,GAAIuJ,GACHxI,EAAOtC,GAAOoH,MAAO1H,MACrB4O,EAAQhM,EAAMvC,EAAO,SACrBiO,EAAQ1L,EAAMvC,EAAO,cACrBu8B,EAASt8B,GAAOs8B,OAChBx8B,EAASwO,EAAQA,EAAMxO,OAAS,CAajC,KAVAwC,EAAK85B,QAAS,EAGdp8B,GAAOsO,MAAO5O,KAAMK,MAEfiO,GAASA,EAAMgD,MACnBhD,EAAMgD,KAAKrQ,KAAMjB,MAAM,GAIlBoL,EAAQwxB,EAAOx8B,OAAQgL,KACvBwxB,EAAQxxB,GAAQrK,OAASf,MAAQ48B,EAAQxxB,GAAQwD,QAAUvO,IAC/Du8B,EAAQxxB,GAAQqD,KAAK6C,MAAM,GAC3BsrB,EAAO3lB,OAAQ7L,EAAO,GAKxB,KAAMA,EAAQ,EAAWhL,EAARgL,EAAgBA,IAC3BwD,EAAOxD,IAAWwD,EAAOxD,GAAQsxB,QACrC9tB,EAAOxD,GAAQsxB,OAAOz7B,KAAMjB,YAKvB4C,GAAK85B,YAKfp8B,GAAOuB,MAAO,SAAU,OAAQ,QAAU,SAAUb,EAAG8B,GACtD,GAAI+5B,GAAQv8B,GAAOsV,GAAI9S,EACvBxC,IAAOsV,GAAI9S,GAAS,SAAUo5B,EAAOnvB,EAAQ0J,GAC5C,MAAgB,OAATylB,GAAkC,iBAAVA,GAC9BW,EAAMtyB,MAAOvK,KAAMwK,WACnBxK,KAAKu8B,QAASjvB,EAAOxK,GAAM,GAAQo5B,EAAOnvB,EAAQ0J,MAKrDnW,GAAOuB,MACNi7B,UAAWxvB,EAAM,QACjByvB,QAASzvB,EAAM,QACf0vB,YAAa1vB,EAAM,UACnB2vB,QAAUtvB,QAAS,QACnBuvB,SAAWvvB,QAAS,QACpBwvB,YAAcxvB,QAAS,WACrB,SAAU7K,EAAMqL,GAClB7N,GAAOsV,GAAI9S,GAAS,SAAUo5B,EAAOnvB,EAAQ0J,GAC5C,MAAOzW,MAAKu8B,QAASpuB,EAAO+tB,EAAOnvB,EAAQ0J,MAI7CnW,GAAOs8B,UACPt8B,GAAOmR,GAAGjB,KAAO,WAChB,GAAIkB,GACHkrB,EAASt8B,GAAOs8B,OAChB57B,EAAI,CAIL,KAFAoM,GAAQ9M,GAAO+M,MAEPrM,EAAI47B,EAAOx8B,OAAQY,IAC1B0Q,EAAQkrB,EAAQ57B,GAEV0Q,KAAWkrB,EAAQ57B,KAAQ0Q,GAChCkrB,EAAO3lB,OAAQjW,IAAK,EAIhB47B,GAAOx8B,QACZE,GAAOmR,GAAGH,OAEXlE,GAAQvK,QAGTvC,GAAOmR,GAAGC,MAAQ,SAAUA,GAC3BpR,GAAOs8B,OAAOt2B,KAAMoL,GACfA,IACJpR,GAAOmR,GAAG7B,QAEVtP,GAAOs8B,OAAOz4B,OAIhB7D,GAAOmR,GAAG2rB,SAAW,GAErB98B,GAAOmR,GAAG7B,MAAQ,WACX8rB,KACLA,GAAU2B,YAAa/8B,GAAOmR,GAAGjB,KAAMlQ,GAAOmR,GAAG2rB,YAInD98B,GAAOmR,GAAGH,KAAO,WAChBgsB,cAAe5B,IACfA,GAAU,MAGXp7B,GAAOmR,GAAG2qB,QACTmB,KAAM,IACNC,KAAM,IAENtN,SAAU,KAMX5vB,GAAOsV,GAAG6nB,MAAQ,SAAUC,EAAMr9B,GAIjC,MAHAq9B,GAAOp9B,GAAOmR,GAAKnR,GAAOmR,GAAG2qB,OAAQsB,IAAUA,EAAOA,EACtDr9B,EAAOA,GAAQ,KAERL,KAAK4O,MAAOvO,EAAM,SAAU4nB,EAAM3Z,GACxC,GAAIqvB,GAAUxwB,WAAY8a,EAAMyV,EAChCpvB,GAAMgD,KAAO,WACZssB,aAAcD,OAMjB,WAEC,GAAIpb,GAAO7H,EAAKP,EAAQa,EAAGmhB,CAG3BzhB,GAAM9a,GAAS+F,cAAe,OAC9B+U,EAAIb,aAAc,YAAa,KAC/Ba,EAAI9R,UAAY,qEAChBoS,EAAIN,EAAIzU,qBAAqB,KAAM,GAGnCkU,EAASva,GAAS+F,cAAc,UAChCw2B,EAAMhiB,EAAOpT,YAAanH,GAAS+F,cAAc,WACjD4c,EAAQ7H,EAAIzU,qBAAqB,SAAU,GAE3C+U,EAAE5R,MAAMyiB,QAAU,UAGlB9mB,GAAQ84B,gBAAoC,MAAlBnjB,EAAIuH,UAI9Bld,GAAQqE,MAAQ,MAAMjI,KAAM6Z,EAAE9X,aAAa,UAI3C6B,GAAQ+4B,eAA4C,OAA3B9iB,EAAE9X,aAAa,QAGxC6B,GAAQg5B,UAAYxb,EAAMzZ,MAI1B/D,GAAQi5B,YAAc7B,EAAInzB,SAG1BjE,GAAQk5B,UAAYr+B,GAAS+F,cAAc,QAAQs4B,QAInD9jB,EAAO4L,UAAW,EAClBhhB,GAAQm5B,aAAe/B,EAAIpW,SAI3BxD,EAAQ3iB,GAAS+F,cAAe,SAChC4c,EAAM1I,aAAc,QAAS,IAC7B9U,GAAQwd,MAA0C,KAAlCA,EAAMrf,aAAc,SAGpCqf,EAAMzZ,MAAQ,IACdyZ,EAAM1I,aAAc,OAAQ,SAC5B9U,GAAQo5B,WAA6B,MAAhB5b,EAAMzZ,QAI5B,IAAIs1B,IAAU,KAEd99B,IAAOsV,GAAGrR,QACTyH,IAAK,SAAUlD,GACd,GAAIwF,GAAO3K,EAAK9C,EACfE,EAAOf,KAAK,EAEb,EAAA,GAAMwK,UAAUpK,OAsBhB,MAFAS,GAAaP,GAAOO,WAAYiI,GAEzB9I,KAAK6B,KAAK,SAAUb,GAC1B,GAAIgL,EAEmB,KAAlBhM,KAAKQ,WAKTwL,EADInL,EACEiI,EAAM7H,KAAMjB,KAAMgB,EAAGV,GAAQN,MAAOgM,OAEpClD,EAIK,MAAPkD,EACJA,EAAM,GACoB,gBAARA,GAClBA,GAAO,GACI1L,GAAOoE,QAASsH,KAC3BA,EAAM1L,GAAOsE,IAAKoH,EAAK,SAAUlD,GAChC,MAAgB,OAATA,EAAgB,GAAKA,EAAQ,MAItCwF,EAAQhO,GAAO+9B,SAAUr+B,KAAKK,OAAUC,GAAO+9B,SAAUr+B,KAAKqG,SAASpD,eAGjEqL,GAAW,OAASA,IAA8CzL,SAApCyL,EAAMyoB,IAAK/2B,KAAMgM,EAAK,WACzDhM,KAAK8I,MAAQkD,KAjDd,IAAKjL,EAGJ,MAFAuN,GAAQhO,GAAO+9B,SAAUt9B,EAAKV,OAAUC,GAAO+9B,SAAUt9B,EAAKsF,SAASpD,eAElEqL,GAAS,OAASA,IAAgDzL,UAAtCc,EAAM2K,EAAMjE,IAAKtJ,EAAM,UAChD4C,GAGRA,EAAM5C,EAAK+H,MAEW,gBAARnF,GAEbA,EAAIZ,QAAQq7B,GAAS,IAEd,MAAPz6B,EAAc,GAAKA,OA0CxBrD,GAAOiE,QACN85B,UACC5J,QACCpqB,IAAK,SAAUtJ,GACd,GAAIiL,GAAM1L,GAAO4G,KAAKC,KAAMpG,EAAM,QAClC,OAAc,OAAPiL,EACNA,EAGA1L,GAAOuI,KAAMvI,GAAOkI,KAAMzH,MAG7BoZ,QACC9P,IAAK,SAAUtJ,GAYd,IAXA,GAAI+H,GAAO2rB,EACV/yB,EAAUX,EAAKW,QACf0J,EAAQrK,EAAKilB,cACb2N,EAAoB,eAAd5yB,EAAKV,MAAiC,EAAR+K,EACpCD,EAASwoB,EAAM,QACfhoB,EAAMgoB,EAAMvoB,EAAQ,EAAI1J,EAAQtB,OAChCY,EAAY,EAARoK,EACHO,EACAgoB,EAAMvoB,EAAQ,EAGJO,EAAJ3K,EAASA,IAIhB,GAHAyzB,EAAS/yB,EAASV,MAGXyzB,EAAOzrB,UAAYhI,IAAMoK,IAE5BrG,GAAQm5B,YAAezJ,EAAO1O,SAA+C,OAApC0O,EAAOvxB,aAAa,cAC5DuxB,EAAOhsB,WAAWsd,UAAazlB,GAAO+F,SAAUouB,EAAOhsB,WAAY,aAAiB,CAMxF,GAHAK,EAAQxI,GAAQm0B,GAASzoB,MAGpB2nB,EACJ,MAAO7qB,EAIRqC,GAAO7E,KAAMwC,GAIf,MAAOqC,IAGR4rB,IAAK,SAAUh2B,EAAM+H,GAMpB,IALA,GAAIw1B,GAAW7J,EACd/yB,EAAUX,EAAKW,QACfyJ,EAAS7K,GAAOyX,UAAWjP,GAC3B9H,EAAIU,EAAQtB,OAELY,KAGP,GAFAyzB,EAAS/yB,EAASV,GAEbV,GAAOe,QAASf,GAAO+9B,SAAS5J,OAAOpqB,IAAKoqB,GAAUtpB,IAAY,EAMtE,IACCspB,EAAOzrB,SAAWs1B,GAAY,EAE7B,MAAQt8B,GAGTyyB,EAAO8J,iBAIR9J,GAAOzrB,UAAW,CASpB,OAJMs1B,KACLv9B,EAAKilB,cAAgB,IAGftkB,OAOXpB,GAAOuB,MAAO,QAAS,YAAc,WACpCvB,GAAO+9B,SAAUr+B,OAChB+2B,IAAK,SAAUh2B,EAAM+H,GACpB,MAAKxI,IAAOoE,QAASoE,GACX/H,EAAK4F,QAAUrG,GAAOe,QAASf,GAAOS,GAAMiL,MAAOlD,IAAW,EADxE,SAKI/D,GAAQg5B,UACbz9B,GAAO+9B,SAAUr+B,MAAOqK,IAAM,SAAUtJ,GAGvC,MAAsC,QAA/BA,EAAKmC,aAAa,SAAoB,KAAOnC,EAAK+H,SAQ5D,IAAI01B,IAAUC,GACb3jB,GAAaxa,GAAOgjB,KAAKxI,WACzB4jB,GAAc,0BACdb,GAAkB94B,GAAQ84B,gBAC1Bc,GAAc55B,GAAQwd,KAEvBjiB,IAAOsV,GAAGrR,QACT4C,KAAM,SAAUrE,EAAMgG,GACrB,MAAO8jB,IAAQ5sB,KAAMM,GAAO6G,KAAMrE,EAAMgG,EAAO0B,UAAUpK,OAAS,IAGnEw+B,WAAY,SAAU97B,GACrB,MAAO9C,MAAK6B,KAAK,WAChBvB,GAAOs+B,WAAY5+B,KAAM8C,QAK5BxC,GAAOiE,QACN4C,KAAM,SAAUpG,EAAM+B,EAAMgG,GAC3B,GAAIwF,GAAO3K,EACVk7B,EAAQ99B,EAAKP,QAGd,IAAMO,GAAkB,IAAV89B,GAAyB,IAAVA,GAAyB,IAAVA,EAK5C,aAAY99B,GAAKmC,eAAiBgD,GAC1B5F,GAAOuM,KAAM9L,EAAM+B,EAAMgG,IAKlB,IAAV+1B,GAAgBv+B,GAAOinB,SAAUxmB,KACrC+B,EAAOA,EAAKG,cACZqL,EAAQhO,GAAOw+B,UAAWh8B,KACvBxC,GAAOgjB,KAAKxhB,MAAMgf,KAAK3f,KAAM2B,GAAS27B,GAAWD,KAGtC37B,SAAViG,EAaOwF,GAAS,OAASA,IAA6C,QAAnC3K,EAAM2K,EAAMjE,IAAKtJ,EAAM+B,IACvDa,GAGPA,EAAMrD,GAAO4G,KAAKC,KAAMpG,EAAM+B,GAGhB,MAAPa,EACNd,OACAc,GApBc,OAAVmF,EAGOwF,GAAS,OAASA,IAAoDzL,UAA1Cc,EAAM2K,EAAMyoB,IAAKh2B,EAAM+H,EAAOhG,IAC9Da,GAGP5C,EAAK8Y,aAAc/W,EAAMgG,EAAQ,IAC1BA,OAPPxI,IAAOs+B,WAAY79B,EAAM+B,KAuB5B87B,WAAY,SAAU79B,EAAM+H,GAC3B,GAAIhG,GAAMi8B,EACT/9B,EAAI,EACJg+B,EAAYl2B,GAASA,EAAMhH,MAAOC,GAEnC,IAAKi9B,GAA+B,IAAlBj+B,EAAKP,SACtB,KAASsC,EAAOk8B,EAAUh+B,MACzB+9B,EAAWz+B,GAAO2+B,QAASn8B,IAAUA,EAGhCxC,GAAOgjB,KAAKxhB,MAAMgf,KAAK3f,KAAM2B,GAE5B67B,IAAed,KAAoBa,GAAYv9B,KAAM2B,GACzD/B,EAAMg+B,IAAa,EAInBh+B,EAAMT,GAAOkE,UAAW,WAAa1B,IACpC/B,EAAMg+B,IAAa,EAKrBz+B,GAAO6G,KAAMpG,EAAM+B,EAAM,IAG1B/B,EAAKwG,gBAAiBs2B,GAAkB/6B,EAAOi8B,IAKlDD,WACCz+B,MACC02B,IAAK,SAAUh2B,EAAM+H,GACpB,IAAM/D,GAAQo5B,YAAwB,UAAVr1B,GAAqBxI,GAAO+F,SAAStF,EAAM,SAAW,CAGjF,GAAIiL,GAAMjL,EAAK+H,KAKf,OAJA/H,GAAK8Y,aAAc,OAAQ/Q,GACtBkD,IACJjL,EAAK+H,MAAQkD,GAEPlD,QAQZ21B,IACC1H,IAAK,SAAUh2B,EAAM+H,EAAOhG,GAa3B,MAZKgG,MAAU,EAEdxI,GAAOs+B,WAAY79B,EAAM+B,GACd67B,IAAed,KAAoBa,GAAYv9B,KAAM2B,GAEhE/B,EAAK8Y,cAAegkB,IAAmBv9B,GAAO2+B,QAASn8B,IAAUA,EAAMA,GAIvE/B,EAAMT,GAAOkE,UAAW,WAAa1B,IAAW/B,EAAM+B,IAAS,EAGzDA,IAKTxC,GAAOuB,KAAMvB,GAAOgjB,KAAKxhB,MAAMgf,KAAK4L,OAAO5qB,MAAO,QAAU,SAAUd,EAAG8B,GAExE,GAAIo8B,GAASpkB,GAAYhY,IAAUxC,GAAO4G,KAAKC,IAE/C2T,IAAYhY,GAAS67B,IAAed,KAAoBa,GAAYv9B,KAAM2B,GACzE,SAAU/B,EAAM+B,EAAMic,GACrB,GAAIpb,GAAKwE,CAUT,OATM4W,KAEL5W,EAAS2S,GAAYhY,GACrBgY,GAAYhY,GAASa,EACrBA,EAAqC,MAA/Bu7B,EAAQn+B,EAAM+B,EAAMic,GACzBjc,EAAKG,cACL,KACD6X,GAAYhY,GAASqF,GAEfxE,GAER,SAAU5C,EAAM+B,EAAMic,GACrB,MAAMA,GAAN,OACQhe,EAAMT,GAAOkE,UAAW,WAAa1B,IAC3CA,EAAKG,cACL,QAMC07B,IAAgBd,KACrBv9B,GAAOw+B,UAAUh2B,OAChBiuB,IAAK,SAAUh2B,EAAM+H,EAAOhG,GAC3B,MAAKxC,IAAO+F,SAAUtF,EAAM,cAE3BA,EAAKkI,aAAeH,GAGb01B,IAAYA,GAASzH,IAAKh2B,EAAM+H,EAAOhG,MAO5C+6B,KAILW,IACCzH,IAAK,SAAUh2B,EAAM+H,EAAOhG,GAE3B,GAAIa,GAAM5C,EAAKuhB,iBAAkBxf,EAUjC,OATMa,IACL5C,EAAKo+B,iBACHx7B,EAAM5C,EAAKiG,cAAco4B,gBAAiBt8B,IAI7Ca,EAAImF,MAAQA,GAAS,GAGP,UAAThG,GAAoBgG,IAAU/H,EAAKmC,aAAcJ,GAC9CgG,EADR,SAOFgS,GAAW7W,GAAK6W,GAAWhY,KAAOgY,GAAWukB,OAC5C,SAAUt+B,EAAM+B,EAAMic,GACrB,GAAIpb,EACJ,OAAMob,GAAN,QACSpb,EAAM5C,EAAKuhB,iBAAkBxf,KAAyB,KAAda,EAAImF,MACnDnF,EAAImF,MACJ,MAKJxI,GAAO+9B,SAASnY,QACf7b,IAAK,SAAUtJ,EAAM+B,GACpB,GAAIa,GAAM5C,EAAKuhB,iBAAkBxf,EACjC,OAAKa,IAAOA,EAAI4f,UACR5f,EAAImF,MADZ,QAIDiuB,IAAKyH,GAASzH,KAKfz2B,GAAOw+B,UAAUQ,iBAChBvI,IAAK,SAAUh2B,EAAM+H,EAAOhG,GAC3B07B,GAASzH,IAAKh2B,EAAgB,KAAV+H,GAAe,EAAQA,EAAOhG,KAMpDxC,GAAOuB,MAAO,QAAS,UAAY,SAAUb,EAAG8B,GAC/CxC,GAAOw+B,UAAWh8B,IACjBi0B,IAAK,SAAUh2B,EAAM+H,GACpB,MAAe,KAAVA,GACJ/H,EAAK8Y,aAAc/W,EAAM,QAClBgG,GAFR,YASE/D,GAAQqE,QACb9I,GAAOw+B,UAAU11B,OAChBiB,IAAK,SAAUtJ,GAId,MAAOA,GAAKqI,MAAMyiB,SAAWhpB,QAE9Bk0B,IAAK,SAAUh2B,EAAM+H,GACpB,MAAS/H,GAAKqI,MAAMyiB,QAAU/iB,EAAQ,KAQzC,IAAIy2B,IAAa,6CAChBC,GAAa,eAEdl/B,IAAOsV,GAAGrR,QACTsI,KAAM,SAAU/J,EAAMgG,GACrB,MAAO8jB,IAAQ5sB,KAAMM,GAAOuM,KAAM/J,EAAMgG,EAAO0B,UAAUpK,OAAS,IAGnEq/B,WAAY,SAAU38B,GAErB,MADAA,GAAOxC,GAAO2+B,QAASn8B,IAAUA,EAC1B9C,KAAK6B,KAAK,WAEhB,IACC7B,KAAM8C,GAASD,aACR7C,MAAM8C,GACZ,MAAOO,UAKZ/C,GAAOiE,QACN06B,SACCS,MAAO,UACPC,QAAS,aAGV9yB,KAAM,SAAU9L,EAAM+B,EAAMgG,GAC3B,GAAInF,GAAK2K,EAAOsxB,EACff,EAAQ99B,EAAKP,QAGd,IAAMO,GAAkB,IAAV89B,GAAyB,IAAVA,GAAyB,IAAVA,EAY5C,MARAe,GAAmB,IAAVf,IAAgBv+B,GAAOinB,SAAUxmB,GAErC6+B,IAEJ98B,EAAOxC,GAAO2+B,QAASn8B,IAAUA,EACjCwL,EAAQhO,GAAO46B,UAAWp4B,IAGZD,SAAViG,EACGwF,GAAS,OAASA,IAAoDzL,UAA1Cc,EAAM2K,EAAMyoB,IAAKh2B,EAAM+H,EAAOhG,IAChEa,EACE5C,EAAM+B,GAASgG,EAGXwF,GAAS,OAASA,IAA6C,QAAnC3K,EAAM2K,EAAMjE,IAAKtJ,EAAM+B,IACzDa,EACA5C,EAAM+B,IAITo4B,WACCrV,UACCxb,IAAK,SAAUtJ,GAId,GAAI8+B,GAAWv/B,GAAO4G,KAAKC,KAAMpG,EAAM,WAEvC,OAAO8+B,GACNC,SAAUD,EAAU,IACpBN,GAAWp+B,KAAMJ,EAAKsF,WAAcm5B,GAAWr+B,KAAMJ,EAAKsF,WAActF,EAAK6kB,KAC5E,EACA,QAQA7gB,GAAQ+4B,gBAEbx9B,GAAOuB,MAAO,OAAQ,OAAS,SAAUb,EAAG8B,GAC3CxC,GAAO46B,UAAWp4B,IACjBuH,IAAK,SAAUtJ,GACd,MAAOA,GAAKmC,aAAcJ,EAAM,OAS9BiC,GAAQi5B,cACb19B,GAAO46B,UAAUlyB,UAChBqB,IAAK,SAAUtJ,GACd,GAAI+gB,GAAS/gB,EAAK0H,UAUlB,OARKqZ,KACJA,EAAOkE,cAGFlE,EAAOrZ,YACXqZ,EAAOrZ,WAAWud,eAGb,QAKV1lB,GAAOuB,MACN,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,mBACE,WACFvB,GAAO2+B,QAASj/B,KAAKiD,eAAkBjD,OAIlC+E,GAAQk5B,UACb39B,GAAO2+B,QAAQhB,QAAU,WAM1B,IAAI8B,IAAS,aAEbz/B,IAAOsV,GAAGrR,QACTy7B,SAAU,SAAUl3B,GACnB,GAAIm3B,GAASl/B,EAAMQ,EAAK2+B,EAAOnpB,EAAGopB,EACjCn/B,EAAI,EACJ8V,EAAM9W,KAAKI,OACXggC,EAA2B,gBAAVt3B,IAAsBA,CAExC,IAAKxI,GAAOO,WAAYiI,GACvB,MAAO9I,MAAK6B,KAAK,SAAUkV,GAC1BzW,GAAQN,MAAOggC,SAAUl3B,EAAM7H,KAAMjB,KAAM+W,EAAG/W,KAAKiiB,aAIrD,IAAKme,EAIJ,IAFAH,GAAYn3B,GAAS,IAAKhH,MAAOC,QAErB+U,EAAJ9V,EAASA,IAOhB,GANAD,EAAOf,KAAMgB,GACbO,EAAwB,IAAlBR,EAAKP,WAAoBO,EAAKkhB,WACjC,IAAMlhB,EAAKkhB,UAAY,KAAMlf,QAASg9B,GAAQ,KAChD,KAGU,CAEV,IADAhpB,EAAI,EACKmpB,EAAQD,EAAQlpB,MACnBxV,EAAI8T,QAAS,IAAM6qB,EAAQ,KAAQ,IACvC3+B,GAAO2+B,EAAQ,IAKjBC,GAAa7/B,GAAOuI,KAAMtH,GACrBR,EAAKkhB,YAAcke,IACvBp/B,EAAKkhB,UAAYke,GAMrB,MAAOngC,OAGRqgC,YAAa,SAAUv3B,GACtB,GAAIm3B,GAASl/B,EAAMQ,EAAK2+B,EAAOnpB,EAAGopB,EACjCn/B,EAAI,EACJ8V,EAAM9W,KAAKI,OACXggC,EAA+B,IAArB51B,UAAUpK,QAAiC,gBAAV0I,IAAsBA,CAElE,IAAKxI,GAAOO,WAAYiI,GACvB,MAAO9I,MAAK6B,KAAK,SAAUkV,GAC1BzW,GAAQN,MAAOqgC,YAAav3B,EAAM7H,KAAMjB,KAAM+W,EAAG/W,KAAKiiB,aAGxD,IAAKme,EAGJ,IAFAH,GAAYn3B,GAAS,IAAKhH,MAAOC,QAErB+U,EAAJ9V,EAASA,IAQhB,GAPAD,EAAOf,KAAMgB,GAEbO,EAAwB,IAAlBR,EAAKP,WAAoBO,EAAKkhB,WACjC,IAAMlhB,EAAKkhB,UAAY,KAAMlf,QAASg9B,GAAQ,KAChD,IAGU,CAEV,IADAhpB,EAAI,EACKmpB,EAAQD,EAAQlpB,MAExB,KAAQxV,EAAI8T,QAAS,IAAM6qB,EAAQ,MAAS,GAC3C3+B,EAAMA,EAAIwB,QAAS,IAAMm9B,EAAQ,IAAK,IAKxCC,GAAar3B,EAAQxI,GAAOuI,KAAMtH,GAAQ,GACrCR,EAAKkhB,YAAcke,IACvBp/B,EAAKkhB,UAAYke,GAMrB,MAAOngC,OAGRsgC,YAAa,SAAUx3B,EAAOy3B,GAC7B,GAAIlgC,SAAcyI,EAElB,OAAyB,iBAAby3B,IAAmC,WAATlgC,EAC9BkgC,EAAWvgC,KAAKggC,SAAUl3B,GAAU9I,KAAKqgC,YAAav3B,GAItD9I,KAAK6B,KADRvB,GAAOO,WAAYiI,GACN,SAAU9H,GAC1BV,GAAQN,MAAOsgC,YAAax3B,EAAM7H,KAAKjB,KAAMgB,EAAGhB,KAAKiiB,UAAWse,GAAWA,IAI5D,WAChB,GAAc,WAATlgC,EAOJ,IALA,GAAI4hB,GACHjhB,EAAI,EACJ0mB,EAAOpnB,GAAQN,MACfwgC,EAAa13B,EAAMhH,MAAOC,QAElBkgB,EAAYue,EAAYx/B,MAE3B0mB,EAAK+Y,SAAUxe,GACnByF,EAAK2Y,YAAape,GAElByF,EAAKsY,SAAU/d,QAKN5hB,IAAS6F,IAAyB,YAAT7F,KAC/BL,KAAKiiB,WAET3hB,GAAOoH,MAAO1H,KAAM,gBAAiBA,KAAKiiB,WAO3CjiB,KAAKiiB,UAAYjiB,KAAKiiB,WAAanZ,KAAU,EAAQ,GAAKxI,GAAOoH,MAAO1H,KAAM,kBAAqB,OAKtGygC,SAAU,SAAU9qB,GAInB,IAHA,GAAIsM,GAAY,IAAMtM,EAAW,IAChC3U,EAAI,EACJ+G,EAAI/H,KAAKI,OACE2H,EAAJ/G,EAAOA,IACd,GAA0B,IAArBhB,KAAKgB,GAAGR,WAAmB,IAAMR,KAAKgB,GAAGihB,UAAY,KAAKlf,QAAQg9B,GAAQ,KAAK1qB,QAAS4M,IAAe,EAC3G,OAAO,CAIT,QAAO,KAUT3hB,GAAOuB,KAAM,0MAEqDgD,MAAM,KAAM,SAAU7D,EAAG8B,GAG1FxC,GAAOsV,GAAI9S,GAAS,SAAUF,EAAMgT,GACnC,MAAOpL,WAAUpK,OAAS,EACzBJ,KAAK0zB,GAAI5wB,EAAM,KAAMF,EAAMgT,GAC3B5V,KAAKsvB,QAASxsB,MAIjBxC,GAAOsV,GAAGrR,QACTm8B,MAAO,SAAUC,EAAQC,GACxB,MAAO5gC,MAAK6yB,WAAY8N,GAAS7N,WAAY8N,GAASD,IAGvDE,KAAM,SAAU3S,EAAOtrB,EAAMgT,GAC5B,MAAO5V,MAAK0zB,GAAIxF,EAAO,KAAMtrB,EAAMgT,IAEpCkrB,OAAQ,SAAU5S,EAAOtY,GACxB,MAAO5V,MAAKwrB,IAAK0C,EAAO,KAAMtY,IAG/BmrB,SAAU,SAAUprB,EAAUuY,EAAOtrB,EAAMgT,GAC1C,MAAO5V,MAAK0zB,GAAIxF,EAAOvY,EAAU/S,EAAMgT,IAExCorB,WAAY,SAAUrrB,EAAUuY,EAAOtY,GAEtC,MAA4B,KAArBpL,UAAUpK,OAAeJ,KAAKwrB,IAAK7V,EAAU,MAAS3V,KAAKwrB,IAAK0C,EAAOvY,GAAY,KAAMC,KAKlG,IAAIqrB,IAAQ3gC,GAAO+M,MAEf6zB,GAAS,KAITC,GAAe,kIAEnB7gC,IAAO8C,UAAY,SAAUR,GAE5B,GAAK7C,EAAOqhC,MAAQrhC,EAAOqhC,KAAKC,MAG/B,MAAOthC,GAAOqhC,KAAKC,MAAOz+B,EAAO,GAGlC,IAAI0+B,GACHC,EAAQ,KACRC,EAAMlhC,GAAOuI,KAAMjG,EAAO,GAI3B,OAAO4+B,KAAQlhC,GAAOuI,KAAM24B,EAAIz+B,QAASo+B,GAAc,SAAUha,EAAOsa,EAAOC,EAAMz3B,GAQpF,MALKq3B,IAAmBG,IACvBF,EAAQ,GAIM,IAAVA,EACGpa,GAIRma,EAAkBI,GAAQD,EAM1BF,IAAUt3B,GAASy3B,EAGZ,OAELC,SAAU,UAAYH,KACxBlhC,GAAOkU,MAAO,iBAAmB5R,IAKnCtC,GAAOshC,SAAW,SAAUh/B,GAC3B,GAAIuZ,GAAKhI,CACT,KAAMvR,GAAwB,gBAATA,GACpB,MAAO,KAER,KACM7C,EAAO8hC,WACX1tB,EAAM,GAAI0tB,WACV1lB,EAAMhI,EAAI2tB,gBAAiBl/B,EAAM,cAEjCuZ,EAAM,GAAIlH,eAAe,oBACzBkH,EAAI4lB,MAAQ,QACZ5lB,EAAI6lB,QAASp/B,IAEb,MAAOS,GACR8Y,EAAMtZ,OAKP,MAHMsZ,IAAQA,EAAItS,kBAAmBsS,EAAIlW,qBAAsB,eAAgB7F,QAC9EE,GAAOkU,MAAO,gBAAkB5R,GAE1BuZ,EAIR,IAEC8lB,IACAC,GAEAC,GAAQ,OACRC,GAAM,gBACNC,GAAW,gCAEXC,GAAiB,4DACjBC,GAAa,iBACbC,GAAY,QACZC,GAAO,4DAWPC,MAOA9vB,MAGA+vB,GAAW,KAAKh+B,OAAO,IAIxB,KACCu9B,GAAe1c,SAASI,KACvB,MAAOviB,IAGR6+B,GAAetiC,GAAS+F,cAAe,KACvCu8B,GAAatc,KAAO,GACpBsc,GAAeA,GAAatc,KAI7Bqc,GAAeQ,GAAKn7B,KAAM46B,GAAaj/B,mBAoOvC3C,GAAOiE,QAGNq+B,OAAQ,EAGRC,gBACAC,QAEA7vB,cACC8vB,IAAKb,GACL7hC,KAAM,MACN2iC,QAASV,GAAenhC,KAAM8gC,GAAc,IAC5CziC,QAAQ,EACRyjC,aAAa,EACblB,OAAO,EACPmB,YAAa,mDAabC,SACCtH,IAAK8G,GACLn6B,KAAM,aACNmuB,KAAM,YACNxa,IAAK,4BACLinB,KAAM,qCAGP5vB,UACC2I,IAAK,MACLwa,KAAM,OACNyM,KAAM,QAGP/uB,gBACC8H,IAAK,cACL3T,KAAM,eACN46B,KAAM,gBAKPxvB,YAGCyvB,SAAU7hB,OAGV8hB,aAAa,EAGbC,YAAajjC,GAAO8C,UAGpBogC,WAAYljC,GAAOshC,UAOpB5uB,aACC+vB,KAAK,EACLl9B,SAAS,IAOX49B,UAAW,SAAU3wB,EAAQ4wB,GAC5B,MAAOA,GAGN7wB,EAAYA,EAAYC,EAAQxS,GAAO2S,cAAgBywB,GAGvD7wB,EAAYvS,GAAO2S,aAAcH,IAGnC6wB,cAAe7xB,EAA6B4wB,IAC5CkB,cAAe9xB,EAA6Bc,IAG5CixB,KAAM,SAAUd,EAAKrhC,GAoRpB,QAAS+N,GAAMq0B,EAAQC,EAAkB3wB,EAAW4wB,GACnD,GAAIjwB,GAAWkwB,EAASzvB,EAAOV,EAAUowB,EACxCC,EAAaJ,CAGC,KAAVxvB,IAKLA,EAAQ,EAGH6vB,GACJxG,aAAcwG,GAKfC,EAAYxhC,OAGZyhC,EAAwBN,GAAW,GAGnC1xB,EAAM9P,WAAashC,EAAS,EAAI,EAAI,EAGpC/vB,EAAY+vB,GAAU,KAAgB,IAATA,GAA2B,MAAXA,EAGxC1wB,IACJU,EAAWZ,EAAqBC,EAAGb,EAAOc,IAI3CU,EAAWD,EAAaV,EAAGW,EAAUxB,EAAOyB,GAGvCA,GAGCZ,EAAEoxB,aACNL,EAAW5xB,EAAMqB,kBAAkB,iBAC9BuwB,IACJ5jC,GAAOuiC,aAAc2B,GAAaN,GAEnCA,EAAW5xB,EAAMqB,kBAAkB,QAC9BuwB,IACJ5jC,GAAOwiC,KAAM0B,GAAaN,IAKZ,MAAXJ,GAA6B,SAAX3wB,EAAE9S,KACxB8jC,EAAa,YAGS,MAAXL,EACXK,EAAa,eAIbA,EAAarwB,EAASS,MACtB0vB,EAAUnwB,EAASlR,KACnB4R,EAAQV,EAASU,MACjBT,GAAaS,KAKdA,EAAQ2vB,GACHL,IAAWK,KACfA,EAAa,QACC,EAATL,IACJA,EAAS,KAMZxxB,EAAMwxB,OAASA,EACfxxB,EAAM6xB,YAAeJ,GAAoBI,GAAe,GAGnDpwB,EACJzD,EAASY,YAAauzB,GAAmBR,EAASE,EAAY7xB,IAE9DhC,EAASkB,WAAYizB,GAAmBnyB,EAAO6xB,EAAY3vB,IAI5DlC,EAAMoyB,WAAYA,GAClBA,EAAa7hC,OAER8hC,GACJC,EAAmBtV,QAASvb,EAAY,cAAgB,aACrDzB,EAAOa,EAAGY,EAAYkwB,EAAUzvB,IAIpCqwB,EAAiB9a,SAAU0a,GAAmBnyB,EAAO6xB,IAEhDQ,IACJC,EAAmBtV,QAAS,gBAAkBhd,EAAOa,MAE3C7S,GAAOsiC,QAChBtiC,GAAOiC,MAAM+sB,QAAQ,cA5XJ,gBAARyT,KACXrhC,EAAUqhC,EACVA,EAAMlgC,QAIPnB,EAAUA,KAEV,IACCs5B,GAEAh6B,EAEAwjC,EAEAF,EAEAF,EAGAO,EAEAN,EAEAS,EAEA3xB,EAAI7S,GAAOmjC,aAAe/hC,GAE1B+iC,EAAkBtxB,EAAEtN,SAAWsN,EAE/ByxB,EAAqBzxB,EAAEtN,UAAa4+B,EAAgBjkC,UAAYikC,EAAgBtuB,QAC/E7V,GAAQmkC,GACRnkC,GAAOiC,MAER+N,EAAWhQ,GAAOiQ,WAClBs0B,EAAmBvkC,GAAO2oB,UAAU,eAEpCyb,EAAavxB,EAAEuxB,eAEfK,KACAC,KAEAzwB,EAAQ,EAER0wB,EAAW,WAEX3yB,GACC9P,WAAY,EAGZmR,kBAAmB,SAAUhR,GAC5B,GAAIb,EACJ,IAAe,IAAVyS,EAAc,CAClB,IAAMuwB,EAEL,IADAA,KACShjC,EAAQugC,GAAS/6B,KAAMg9B,IAC/BQ,EAAiBhjC,EAAM,GAAGmB,eAAkBnB,EAAO,EAGrDA,GAAQgjC,EAAiBniC,EAAIM,eAE9B,MAAgB,OAATnB,EAAgB,KAAOA,GAI/BojC,sBAAuB,WACtB,MAAiB,KAAV3wB,EAAc+vB,EAAwB,MAI9Ca,iBAAkB,SAAUriC,EAAMgG,GACjC,GAAIs8B,GAAQtiC,EAAKG,aAKjB,OAJMsR,KACLzR,EAAOkiC,EAAqBI,GAAUJ,EAAqBI,IAAWtiC,EACtEiiC,EAAgBjiC,GAASgG,GAEnB9I,MAIRqlC,iBAAkB,SAAUhlC,GAI3B,MAHMkU,KACLpB,EAAEO,SAAWrT,GAEPL,MAIR0kC,WAAY,SAAU9/B,GACrB,GAAI0gC,EACJ,IAAK1gC,EACJ,GAAa,EAAR2P,EACJ,IAAM+wB,IAAQ1gC,GAEb8/B,EAAYY,IAAWZ,EAAYY,GAAQ1gC,EAAK0gC,QAIjDhzB,GAAMrD,OAAQrK,EAAK0N,EAAMwxB,QAG3B,OAAO9jC,OAIRulC,MAAO,SAAUpB,GAChB,GAAIqB,GAAYrB,GAAcc,CAK9B,OAJKZ,IACJA,EAAUkB,MAAOC,GAElB/1B,EAAM,EAAG+1B,GACFxlC,MAwCV,IAnCAsQ,EAASa,QAASmB,GAAQV,SAAWizB,EAAiBz8B,IACtDkK,EAAM2xB,QAAU3xB,EAAM7C,KACtB6C,EAAMkC,MAAQlC,EAAMT,KAMpBsB,EAAE4vB,MAAUA,GAAO5vB,EAAE4vB,KAAOb,IAAiB,IAAKn/B,QAASo/B,GAAO,IAAKp/B,QAASy/B,GAAWP,GAAc,GAAM,MAG/G9uB,EAAE9S,KAAOqB,EAAQ+jC,QAAU/jC,EAAQrB,MAAQ8S,EAAEsyB,QAAUtyB,EAAE9S,KAGzD8S,EAAEhB,UAAY7R,GAAOuI,KAAMsK,EAAEjB,UAAY,KAAMjP,cAAcnB,MAAOC,MAAiB,IAG/D,MAAjBoR,EAAEuyB,cACN1K,EAAQyH,GAAKn7B,KAAM6L,EAAE4vB,IAAI9/B,eACzBkQ,EAAEuyB,eAAkB1K,GACjBA,EAAO,KAAQiH,GAAc,IAAOjH,EAAO,KAAQiH,GAAc,KAChEjH,EAAO,KAAwB,UAAfA,EAAO,GAAkB,KAAO,WAC/CiH,GAAc,KAA+B,UAAtBA,GAAc,GAAkB,KAAO,UAK/D9uB,EAAEvQ,MAAQuQ,EAAE8vB,aAAiC,gBAAX9vB,GAAEvQ,OACxCuQ,EAAEvQ,KAAOtC,GAAOs0B,MAAOzhB,EAAEvQ,KAAMuQ,EAAEwB,cAIlCtC,EAA+BqwB,GAAYvvB,EAAGzR,EAAS4Q,GAGxC,IAAViC,EACJ,MAAOjC,EAKRqyB,GAAcrkC,GAAOiC,OAAS4Q,EAAE3T,OAG3BmlC,GAAmC,IAApBrkC,GAAOsiC,UAC1BtiC,GAAOiC,MAAM+sB,QAAQ,aAItBnc,EAAE9S,KAAO8S,EAAE9S,KAAKuK,cAGhBuI,EAAEwyB,YAAcpD,GAAWphC,KAAMgS,EAAE9S,MAInCmkC,EAAWrxB,EAAE4vB,IAGP5vB,EAAEwyB,aAGFxyB,EAAEvQ,OACN4hC,EAAarxB,EAAE4vB,MAAS7B,GAAO//B,KAAMqjC,GAAa,IAAM,KAAQrxB,EAAEvQ,WAE3DuQ,GAAEvQ,MAILuQ,EAAEnP,SAAU,IAChBmP,EAAE4vB,IAAMX,GAAIjhC,KAAMqjC,GAGjBA,EAASzhC,QAASq/B,GAAK,OAASnB,MAGhCuD,GAAatD,GAAO//B,KAAMqjC,GAAa,IAAM,KAAQ,KAAOvD,OAK1D9tB,EAAEoxB,aACDjkC,GAAOuiC,aAAc2B,IACzBlyB,EAAM6yB,iBAAkB,oBAAqB7kC,GAAOuiC,aAAc2B,IAE9DlkC,GAAOwiC,KAAM0B,IACjBlyB,EAAM6yB,iBAAkB,gBAAiB7kC,GAAOwiC,KAAM0B,MAKnDrxB,EAAEvQ,MAAQuQ,EAAEwyB,YAAcxyB,EAAE+vB,eAAgB,GAASxhC,EAAQwhC,cACjE5wB,EAAM6yB,iBAAkB,eAAgBhyB,EAAE+vB,aAI3C5wB,EAAM6yB,iBACL,SACAhyB,EAAEhB,UAAW,IAAOgB,EAAEgwB,QAAShwB,EAAEhB,UAAU,IAC1CgB,EAAEgwB,QAAShwB,EAAEhB,UAAU,KAA8B,MAArBgB,EAAEhB,UAAW,GAAc,KAAOwwB,GAAW,WAAa,IAC1FxvB,EAAEgwB,QAAS,KAIb,KAAMniC,IAAKmS,GAAE6wB,QACZ1xB,EAAM6yB,iBAAkBnkC,EAAGmS,EAAE6wB,QAAShjC,GAIvC,IAAKmS,EAAEyyB,aAAgBzyB,EAAEyyB,WAAW3kC,KAAMwjC,EAAiBnyB,EAAOa,MAAQ,GAAmB,IAAVoB,GAElF,MAAOjC,GAAMizB,OAIdN,GAAW,OAGX,KAAMjkC,KAAOijC,QAAS,EAAGzvB,MAAO,EAAG5C,SAAU,GAC5CU,EAAOtR,GAAKmS,EAAGnS,GAOhB,IAHAqjC,EAAYhyB,EAA+BO,GAAYO,EAAGzR,EAAS4Q,GAK5D,CACNA,EAAM9P,WAAa,EAGdmiC,GACJC,EAAmBtV,QAAS,YAAchd,EAAOa,IAG7CA,EAAE4uB,OAAS5uB,EAAEwqB,QAAU,IAC3ByG,EAAej3B,WAAW,WACzBmF,EAAMizB,MAAM,YACVpyB,EAAEwqB,SAGN,KACCppB,EAAQ,EACR8vB,EAAUwB,KAAMd,EAAgBt1B,GAC/B,MAAQpM,GAET,KAAa,EAARkR,GAIJ,KAAMlR,EAHNoM,GAAM,GAAIpM,QArBZoM,GAAM,GAAI,eA8IX,OAAO6C,IAGRwzB,QAAS,SAAU/C,EAAKngC,EAAM6T,GAC7B,MAAOnW,IAAO+J,IAAK04B,EAAKngC,EAAM6T,EAAU,SAGzCsvB,UAAW,SAAUhD,EAAKtsB,GACzB,MAAOnW,IAAO+J,IAAK04B,EAAKlgC,OAAW4T,EAAU,aAI/CnW,GAAOuB,MAAQ,MAAO,QAAU,SAAUb,EAAGykC,GAC5CnlC,GAAQmlC,GAAW,SAAU1C,EAAKngC,EAAM6T,EAAUpW,GAQjD,MANKC,IAAOO,WAAY+B,KACvBvC,EAAOA,GAAQoW,EACfA,EAAW7T,EACXA,EAAOC,QAGDvC,GAAOujC,MACbd,IAAKA,EACL1iC,KAAMolC,EACNvzB,SAAU7R,EACVuC,KAAMA,EACNqhC,QAASxtB,OAMZnW,GAAO22B,SAAW,SAAU8L,GAC3B,MAAOziC,IAAOujC,MACbd,IAAKA,EACL1iC,KAAM,MACN6R,SAAU,SACV6vB,OAAO,EACPviC,QAAQ,EACRwmC,UAAU,KAKZ1lC,GAAOsV,GAAGrR,QACT0hC,QAAS,SAAUtP,GAClB,GAAKr2B,GAAOO,WAAY81B,GACvB,MAAO32B,MAAK6B,KAAK,SAASb,GACzBV,GAAON,MAAMimC,QAAStP,EAAK11B,KAAKjB,KAAMgB,KAIxC,IAAKhB,KAAK,GAAK,CAEd,GAAIg2B,GAAO11B,GAAQq2B,EAAM32B,KAAK,GAAGgH,eAAgB4P,GAAG,GAAGQ,OAAM,EAExDpX,MAAK,GAAGyI,YACZutB,EAAKO,aAAcv2B,KAAK,IAGzBg2B,EAAKpxB,IAAI,WAGR,IAFA,GAAI7D,GAAOf,KAEHe,EAAK+F,YAA2C,IAA7B/F,EAAK+F,WAAWtG,UAC1CO,EAAOA,EAAK+F,UAGb,OAAO/F,KACLq1B,OAAQp2B,MAGZ,MAAOA,OAGRkmC,UAAW,SAAUvP,GACpB,MACQ32B,MAAK6B,KADRvB,GAAOO,WAAY81B,GACN,SAAS31B,GACzBV,GAAON,MAAMkmC,UAAWvP,EAAK11B,KAAKjB,KAAMgB,KAIzB,WAChB,GAAI0mB,GAAOpnB,GAAQN,MAClBwT,EAAWkU,EAAKlU,UAEZA,GAASpT,OACboT,EAASyyB,QAAStP,GAGlBjP,EAAK0O,OAAQO,MAKhBX,KAAM,SAAUW,GACf,GAAI91B,GAAaP,GAAOO,WAAY81B,EAEpC,OAAO32B,MAAK6B,KAAK,SAASb,GACzBV,GAAQN,MAAOimC,QAASplC,EAAa81B,EAAK11B,KAAKjB,KAAMgB,GAAK21B,MAI5DwP,OAAQ,WACP,MAAOnmC,MAAK8hB,SAASjgB,KAAK,WACnBvB,GAAO+F,SAAUrG,KAAM,SAC5BM,GAAQN,MAAO42B,YAAa52B,KAAKoG,cAEhC0G,SAKLxM,GAAOgjB,KAAKwD,QAAQ5b,OAAS,SAAUnK,GAGtC,MAAOA,GAAKqL,aAAe,GAAKrL,EAAKsL,cAAgB,IAClDtH,GAAQi0B,yBACiE,UAAxEj4B,EAAKqI,OAASrI,EAAKqI,MAAMG,SAAYjJ,GAAOmJ,IAAK1I,EAAM,aAG5DT,GAAOgjB,KAAKwD,QAAQsf,QAAU,SAAUrlC,GACvC,OAAQT,GAAOgjB,KAAKwD,QAAQ5b,OAAQnK,GAMrC,IAAIslC,IAAM,OACTxxB,GAAW,QACXyxB,GAAQ,SACRC,GAAkB,wCAClBC,GAAe,oCAgChBlmC,IAAOs0B,MAAQ,SAAU5Z,EAAGrG,GAC3B,GAAID,GACHvB,KACA/K,EAAM,SAAUzF,EAAKmG,GAEpBA,EAAQxI,GAAOO,WAAYiI,GAAUA,IAAqB,MAATA,EAAgB,GAAKA,EACtEqK,EAAGA,EAAE/S,QAAWqmC,mBAAoB9jC,GAAQ,IAAM8jC,mBAAoB39B,GASxE,IALqBjG,SAAhB8R,IACJA,EAAcrU,GAAO2S,cAAgB3S,GAAO2S,aAAa0B,aAIrDrU,GAAOoE,QAASsW,IAASA,EAAE7E,SAAW7V,GAAO+W,cAAe2D,GAEhE1a,GAAOuB,KAAMmZ,EAAG,WACf5S,EAAKpI,KAAK8C,KAAM9C,KAAK8I,aAMtB,KAAM4L,IAAUsG,GACfvG,EAAaC,EAAQsG,EAAGtG,GAAUC,EAAavM,EAKjD,OAAO+K,GAAE8G,KAAM,KAAMlX,QAASsjC,GAAK,MAGpC/lC,GAAOsV,GAAGrR,QACTmiC,UAAW,WACV,MAAOpmC,IAAOs0B,MAAO50B,KAAK2mC,mBAE3BA,eAAgB,WACf,MAAO3mC,MAAK4E,IAAI,WAEf,GAAIlE,GAAWJ,GAAOuM,KAAM7M,KAAM,WAClC,OAAOU,GAAWJ,GAAOyX,UAAWrX,GAAaV,OAEjDoB,OAAO,WACP,GAAIf,GAAOL,KAAKK,IAEhB,OAAOL,MAAK8C,OAASxC,GAAQN,MAAO2nB,GAAI,cACvC6e,GAAarlC,KAAMnB,KAAKqG,YAAekgC,GAAgBplC,KAAMd,KAC3DL,KAAK2G,UAAYF,GAAetF,KAAMd,MAEzCuE,IAAI,SAAU5D,EAAGD,GACjB,GAAIiL,GAAM1L,GAAQN,MAAOgM,KAEzB,OAAc,OAAPA,EACN,KACA1L,GAAOoE,QAASsH,GACf1L,GAAOsE,IAAKoH,EAAK,SAAUA,GAC1B,OAASlJ,KAAM/B,EAAK+B,KAAMgG,MAAOkD,EAAIjJ,QAASujC,GAAO,YAEpDxjC,KAAM/B,EAAK+B,KAAMgG,MAAOkD,EAAIjJ,QAASujC,GAAO,WAC9Cj8B,SAOL/J,GAAO2S,aAAa2zB,IAA+B/jC,SAAzB9C,EAAOkV,cAEhC,WAGC,OAAQjV,KAAKgjC,SAQZ,wCAAwC7hC,KAAMnB,KAAKK,OAEnDyU,KAAuBE,KAGzBF,CAED,IAAI+xB,IAAQ,EACXC,MACAC,GAAezmC,GAAO2S,aAAa2zB,KAK/B7mC,GAAOiiB,aACXjiB,EAAOiiB,YAAa,WAAY,WAC/B,IAAM,GAAIrf,KAAOmkC,IAChBA,GAAcnkC,GAAOE,QAAW,KAMnCkC,GAAQiiC,OAASD,IAAkB,mBAAqBA,IACxDA,GAAehiC,GAAQ8+B,OAASkD,GAG3BA,IAEJzmC,GAAOsjC,cAAc,SAAUliC,GAE9B,IAAMA,EAAQgkC,aAAe3gC,GAAQiiC,KAAO,CAE3C,GAAIvwB,EAEJ,QACCovB,KAAM,SAAU7B,EAASpyB,GACxB,GAAI5Q,GACH4lC,EAAMllC,EAAQklC,MACd3iC,IAAO4iC,EAMR,IAHAD,EAAIlF,KAAMhgC,EAAQrB,KAAMqB,EAAQqhC,IAAKrhC,EAAQqgC,MAAOrgC,EAAQulC,SAAUvlC,EAAQglB,UAGzEhlB,EAAQwlC,UACZ,IAAMlmC,IAAKU,GAAQwlC,UAClBN,EAAK5lC,GAAMU,EAAQwlC,UAAWlmC,EAK3BU,GAAQgS,UAAYkzB,EAAIvB,kBAC5BuB,EAAIvB,iBAAkB3jC,EAAQgS,UAQzBhS,EAAQgkC,aAAgB1B,EAAQ,sBACrCA,EAAQ,oBAAsB,iBAI/B,KAAMhjC,IAAKgjC,GAOYnhC,SAAjBmhC,EAAShjC,IACb4lC,EAAIzB,iBAAkBnkC,EAAGgjC,EAAShjC,GAAM,GAO1C4lC,GAAIf,KAAQnkC,EAAQikC,YAAcjkC,EAAQkB,MAAU,MAGpD6T,EAAW,SAAUzU,EAAGmlC,GACvB,GAAIrD,GAAQK,EAAY/wB,CAGxB,IAAKqD,IAAc0wB,GAA8B,IAAnBP,EAAIpkC,YAOjC,SALOskC,IAAc7iC,GACrBwS,EAAW5T,OACX+jC,EAAIQ,mBAAqB9mC,GAAOgE,KAG3B6iC,EACoB,IAAnBP,EAAIpkC,YACRokC,EAAIrB,YAEC,CACNnyB,KACA0wB,EAAS8C,EAAI9C,OAKoB,gBAArB8C,GAAIS,eACfj0B,EAAU5K,KAAOo+B,EAAIS,aAKtB,KACClD,EAAayC,EAAIzC,WAChB,MAAO9gC,GAER8gC,EAAa,GAQRL,IAAUpiC,EAAQshC,SAAYthC,EAAQgkC,YAGrB,OAAX5B,IACXA,EAAS,KAHTA,EAAS1wB,EAAU5K,KAAO,IAAM,IAS9B4K,GACJxB,EAAUkyB,EAAQK,EAAY/wB,EAAWwzB,EAAI1B,0BAIzCxjC,EAAQqgC,MAGiB,IAAnB6E,EAAIpkC,WAGf2K,WAAYsJ,GAGZmwB,EAAIQ,mBAAqBN,GAAc7iC,GAAOwS,EAP9CA,KAWF8uB,MAAO,WACD9uB,GACJA,EAAU5T,QAAW,QAyB3BvC,GAAOmjC,WACNN,SACCmE,OAAQ,6FAET9zB,UACC8zB,OAAQ,uBAET1zB,YACC2zB,cAAe,SAAU/+B,GAExB,MADAlI,IAAOsX,WAAYpP,GACZA,MAMVlI,GAAOqjC,cAAe,SAAU,SAAUxwB,GACxBtQ,SAAZsQ,EAAEnP,QACNmP,EAAEnP,OAAQ,GAENmP,EAAEuyB,cACNvyB,EAAE9S,KAAO,MACT8S,EAAE3T,QAAS,KAKbc,GAAOsjC,cAAe,SAAU,SAASzwB,GAGxC,GAAKA,EAAEuyB,YAAc,CAEpB,GAAI4B,GACHE,EAAO5nC,GAAS4nC,MAAQlnC,GAAO,QAAQ,IAAMV,GAASiK,eAEvD,QAECg8B,KAAM,SAAU7jC,EAAGyU,GAElB6wB,EAAS1nC,GAAS+F,cAAc,UAEhC2hC,EAAOvF,OAAQ,EAEV5uB,EAAEs0B,gBACNH,EAAOI,QAAUv0B,EAAEs0B,eAGpBH,EAAO1/B,IAAMuL,EAAE4vB,IAGfuE,EAAOK,OAASL,EAAOF,mBAAqB,SAAUplC,EAAGmlC,IAEnDA,IAAYG,EAAO9kC,YAAc,kBAAkBrB,KAAMmmC,EAAO9kC,eAGpE8kC,EAAOK,OAASL,EAAOF,mBAAqB,KAGvCE,EAAO7+B,YACX6+B,EAAO7+B,WAAWkS,YAAa2sB,GAIhCA,EAAS,KAGHH,GACL1wB,EAAU,IAAK,aAOlB+wB,EAAKjR,aAAc+Q,EAAQE,EAAK1gC,aAGjCy+B,MAAO,WACD+B,GACJA,EAAOK,OAAQ9kC,QAAW,OAU/B,IAAI+kC,OACHC,GAAS,mBAGVvnC,IAAOmjC,WACNqE,MAAO,WACPC,cAAe,WACd,GAAItxB,GAAWmxB,GAAazjC,OAAW7D,GAAOwD,QAAU,IAAQm9B,IAEhE,OADAjhC,MAAMyW,IAAa,EACZA,KAKTnW,GAAOqjC,cAAe,aAAc,SAAUxwB,EAAG60B,EAAkB11B,GAElE,GAAI21B,GAAcC,EAAaC,EAC9BC,EAAWj1B,EAAE20B,SAAU,IAAWD,GAAO1mC,KAAMgS,EAAE4vB,KAChD,MACkB,gBAAX5vB,GAAEvQ,QAAwBuQ,EAAE+vB,aAAe,IAAK7tB,QAAQ,sCAAwCwyB,GAAO1mC,KAAMgS,EAAEvQ,OAAU,OAIlI,OAAKwlC,IAAiC,UAArBj1B,EAAEhB,UAAW,IAG7B81B,EAAe90B,EAAE40B,cAAgBznC,GAAOO,WAAYsS,EAAE40B,eACrD50B,EAAE40B,gBACF50B,EAAE40B,cAGEK,EACJj1B,EAAGi1B,GAAaj1B,EAAGi1B,GAAWrlC,QAAS8kC,GAAQ,KAAOI,GAC3C90B,EAAE20B,SAAU,IACvB30B,EAAE4vB,MAAS7B,GAAO//B,KAAMgS,EAAE4vB,KAAQ,IAAM,KAAQ5vB,EAAE20B,MAAQ,IAAMG,GAIjE90B,EAAES,WAAW,eAAiB,WAI7B,MAHMu0B,IACL7nC,GAAOkU,MAAOyzB,EAAe,mBAEvBE,EAAmB,IAI3Bh1B,EAAEhB,UAAW,GAAM,OAGnB+1B,EAAcnoC,EAAQkoC,GACtBloC,EAAQkoC,GAAiB,WACxBE,EAAoB39B,WAIrB8H,EAAMrD,OAAO,WAEZlP,EAAQkoC,GAAiBC,EAGpB/0B,EAAG80B,KAEP90B,EAAE40B,cAAgBC,EAAiBD,cAGnCH,GAAathC,KAAM2hC,IAIfE,GAAqB7nC,GAAOO,WAAYqnC,IAC5CA,EAAaC,EAAmB,IAGjCA,EAAoBD,EAAcrlC,SAI5B,UAtDR,SAgEDvC,GAAOunB,UAAY,SAAUjlB,EAAMiD,EAASwiC,GAC3C,IAAMzlC,GAAwB,gBAATA,GACpB,MAAO,KAEgB,kBAAZiD,KACXwiC,EAAcxiC,EACdA,GAAU,GAEXA,EAAUA,GAAWjG,EAErB,IAAI0oC,GAAS7gB,GAAWngB,KAAM1E,GAC7BkzB,GAAWuS,KAGZ,OAAKC,IACKziC,EAAQF,cAAe2iC,EAAO,MAGxCA,EAAShoC,GAAOu1B,eAAiBjzB,GAAQiD,EAASiwB,GAE7CA,GAAWA,EAAQ11B,QACvBE,GAAQw1B,GAAUlM,SAGZtpB,GAAOiG,SAAW+hC,EAAOliC,aAKjC,IAAImiC,IAAQjoC,GAAOsV,GAAGsc,IAKtB5xB,IAAOsV,GAAGsc,KAAO,SAAU6Q,EAAKyF,EAAQ/xB,GACvC,GAAoB,gBAARssB,IAAoBwF,GAC/B,MAAOA,IAAMh+B,MAAOvK,KAAMwK,UAG3B,IAAImL,GAAU7B,EAAUzT,EACvBqnB,EAAO1nB,KACPwrB,EAAMuX,EAAI1tB,QAAQ,IA+CnB,OA7CKmW,IAAO,IACX7V,EAAWrV,GAAOuI,KAAMk6B,EAAIl4B,MAAO2gB,EAAKuX,EAAI3iC,SAC5C2iC,EAAMA,EAAIl4B,MAAO,EAAG2gB,IAIhBlrB,GAAOO,WAAY2nC,IAGvB/xB,EAAW+xB,EACXA,EAAS3lC,QAGE2lC,GAA4B,gBAAXA,KAC5BnoC,EAAO,QAIHqnB,EAAKtnB,OAAS,GAClBE,GAAOujC,MACNd,IAAKA,EAGL1iC,KAAMA,EACN6R,SAAU,OACVtP,KAAM4lC,IACJ/4B,KAAK,SAAU43B,GAGjBvzB,EAAWtJ,UAEXkd,EAAKiP,KAAMhhB,EAIVrV,GAAO,SAAS81B,OAAQ91B,GAAOunB,UAAWwf,IAAiBngC,KAAMyO,GAGjE0xB,KAECz1B,SAAU6E,GAAY,SAAUnE,EAAOwxB,GACzCpc,EAAK7lB,KAAM4U,EAAU3C,IAAcxB,EAAM+0B,aAAcvD,EAAQxxB,MAI1DtS,MAORM,GAAOuB,MAAQ,YAAa,WAAY,eAAgB,YAAa,cAAe,YAAc,SAAUb,EAAGX,GAC9GC,GAAOsV,GAAIvV,GAAS,SAAUuV,GAC7B,MAAO5V,MAAK0zB,GAAIrzB,EAAMuV,MAOxBtV,GAAOgjB,KAAKwD,QAAQ2hB,SAAW,SAAU1nC,GACxC,MAAOT,IAAOQ,KAAKR,GAAOs8B,OAAQ,SAAUhnB,GAC3C,MAAO7U,KAAS6U,EAAG7U,OACjBX,OAOJ,IAAI+e,IAAUpf,EAAOH,SAASiK,eAa9BvJ,IAAOooC,QACNC,UAAW,SAAU5nC,EAAMW,EAASV,GACnC,GAAI4nC,GAAaC,EAASC,EAAWC,EAAQC,EAAWC,EAAYC,EACnEzP,EAAWn5B,GAAOmJ,IAAK1I,EAAM,YAC7BooC,EAAU7oC,GAAQS,GAClBoN,IAGiB,YAAbsrB,IACJ14B,EAAKqI,MAAMqwB,SAAW,YAGvBuP,EAAYG,EAAQT,SACpBI,EAAYxoC,GAAOmJ,IAAK1I,EAAM,OAC9BkoC,EAAa3oC,GAAOmJ,IAAK1I,EAAM,QAC/BmoC,GAAmC,aAAbzP,GAAwC,UAAbA,IAChDn5B,GAAOe,QAAQ,QAAUynC,EAAWG,IAAiB,GAGjDC,GACJN,EAAcO,EAAQ1P,WACtBsP,EAASH,EAAY7mB,IACrB8mB,EAAUD,EAAY5Q,OAEtB+Q,EAASp8B,WAAYm8B,IAAe,EACpCD,EAAUl8B,WAAYs8B,IAAgB,GAGlC3oC,GAAOO,WAAYa,KACvBA,EAAUA,EAAQT,KAAMF,EAAMC,EAAGgoC,IAGd,MAAftnC,EAAQqgB,MACZ5T,EAAM4T,IAAQrgB,EAAQqgB,IAAMinB,EAAUjnB,IAAQgnB,GAE1B,MAAhBrnC,EAAQs2B,OACZ7pB,EAAM6pB,KAASt2B,EAAQs2B,KAAOgR,EAAUhR,KAAS6Q,GAG7C,SAAWnnC,GACfA,EAAQ0nC,MAAMnoC,KAAMF,EAAMoN,GAE1Bg7B,EAAQ1/B,IAAK0E,KAKhB7N,GAAOsV,GAAGrR,QACTmkC,OAAQ,SAAUhnC,GACjB,GAAK8I,UAAUpK,OACd,MAAmByC,UAAZnB,EACN1B,KACAA,KAAK6B,KAAK,SAAUb,GACnBV,GAAOooC,OAAOC,UAAW3oC,KAAM0B,EAASV,IAI3C,IAAIme,GAASkqB,EACZC,GAAQvnB,IAAK,EAAGiW,KAAM,GACtBj3B,EAAOf,KAAM,GACbmJ,EAAMpI,GAAQA,EAAKiG,aAEpB,IAAMmC,EAON,MAHAgW,GAAUhW,EAAIU,gBAGRvJ,GAAOiZ,SAAU4F,EAASpe,UAMpBA,GAAKwoC,wBAA0BrjC,KAC1CojC,EAAMvoC,EAAKwoC,yBAEZF,EAAMn0B,EAAW/L,IAEhB4Y,IAAKunB,EAAIvnB,KAASsnB,EAAIG,aAAerqB,EAAQ2S,YAAiB3S,EAAQ4S,WAAc,GACpFiG,KAAMsR,EAAItR,MAASqR,EAAII,aAAetqB,EAAQuS,aAAiBvS,EAAQwS,YAAc,KAX9E2X,GAeT7P,SAAU,WACT,GAAMz5B,KAAM,GAAZ,CAIA,GAAI0pC,GAAchB,EACjBiB,GAAiB5nB,IAAK,EAAGiW,KAAM,GAC/Bj3B,EAAOf,KAAM,EAwBd,OArBwC,UAAnCM,GAAOmJ,IAAK1I,EAAM,YAEtB2nC,EAAS3nC,EAAKwoC,yBAGdG,EAAe1pC,KAAK0pC,eAGpBhB,EAAS1oC,KAAK0oC,SACRpoC,GAAO+F,SAAUqjC,EAAc,GAAK,UACzCC,EAAeD,EAAahB,UAI7BiB,EAAa5nB,KAAQzhB,GAAOmJ,IAAKigC,EAAc,GAAK,kBAAkB,GACtEC,EAAa3R,MAAQ13B,GAAOmJ,IAAKigC,EAAc,GAAK,mBAAmB,KAOvE3nB,IAAM2mB,EAAO3mB,IAAO4nB,EAAa5nB,IAAMzhB,GAAOmJ,IAAK1I,EAAM,aAAa,GACtEi3B,KAAM0Q,EAAO1Q,KAAO2R,EAAa3R,KAAO13B,GAAOmJ,IAAK1I,EAAM,cAAc,MAI1E2oC,aAAc,WACb,MAAO1pC,MAAK4E,IAAI,WAGf,IAFA,GAAI8kC,GAAe1pC,KAAK0pC,cAAgBvqB,GAEhCuqB,IAAmBppC,GAAO+F,SAAUqjC,EAAc,SAAuD,WAA3CppC,GAAOmJ,IAAKigC,EAAc,aAC/FA,EAAeA,EAAaA,YAE7B,OAAOA,IAAgBvqB,QAM1B7e,GAAOuB,MAAQ6vB,WAAY,cAAeI,UAAW,eAAiB,SAAU2T,EAAQ54B,GACvF,GAAIkV,GAAM,IAAI5gB,KAAM0L,EAEpBvM,IAAOsV,GAAI6vB,GAAW,SAAUz5B,GAC/B,MAAO4gB,IAAQ5sB,KAAM,SAAUe,EAAM0kC,EAAQz5B,GAC5C,GAAIq9B,GAAMn0B,EAAWnU,EAErB,OAAa8B,UAARmJ,EACGq9B,EAAOx8B,IAAQw8B,GAAOA,EAAKx8B,GACjCw8B,EAAIzpC,SAASiK,gBAAiB47B,GAC9B1kC,EAAM0kC,QAGH4D,EACJA,EAAIO,SACF7nB,EAAYzhB,GAAQ+oC,GAAM3X,aAApB1lB,EACP+V,EAAM/V,EAAM1L,GAAQ+oC,GAAMvX,aAI3B/wB,EAAM0kC,GAAWz5B,IAEhBy5B,EAAQz5B,EAAKxB,UAAUpK,OAAQ,SAQpCE,GAAOuB,MAAQ,MAAO,QAAU,SAAUb,EAAG6L,GAC5CvM,GAAOyP,SAAUlD,GAAS3C,EAAcnF,GAAQk0B,cAC/C,SAAUl4B,EAAM42B,GACf,MAAKA,IACJA,EAAWnrB,GAAQzL,EAAM8L,GAElBJ,GAAUtL,KAAMw2B,GACtBr3B,GAAQS,GAAO04B,WAAY5sB,GAAS,KACpC8qB,GALF,WAaHr3B,GAAOuB,MAAQgoC,OAAQ,SAAUC,MAAO,SAAW,SAAUhnC,EAAMzC,GAClEC,GAAOuB,MAAQ+4B,QAAS,QAAU93B,EAAM+D,QAASxG,EAAM,GAAI,QAAUyC,GAAQ,SAAUinC,EAAcC,GAEpG1pC,GAAOsV,GAAIo0B,GAAa,SAAUrP,EAAQ7xB,GACzC,GAAI+jB,GAAYriB,UAAUpK,SAAY2pC,GAAkC,iBAAXpP,IAC5D9uB,EAAQk+B,IAAkBpP,KAAW,GAAQ7xB,KAAU,EAAO,SAAW,SAE1E,OAAO8jB,IAAQ5sB,KAAM,SAAUe,EAAMV,EAAMyI,GAC1C,GAAIK;;AAEJ,MAAK7I,IAAOC,SAAUQ,GAIdA,EAAKnB,SAASiK,gBAAiB,SAAW/G,GAI3B,IAAlB/B,EAAKP,UACT2I,EAAMpI,EAAK8I,gBAIJ6B,KAAKC,IACX5K,EAAKuI,KAAM,SAAWxG,GAAQqG,EAAK,SAAWrG,GAC9C/B,EAAKuI,KAAM,SAAWxG,GAAQqG,EAAK,SAAWrG,GAC9CqG,EAAK,SAAWrG,KAIDD,SAAViG,EAENxI,GAAOmJ,IAAK1I,EAAMV,EAAMwL,GAGxBvL,GAAO8I,MAAOrI,EAAMV,EAAMyI,EAAO+C,IAChCxL,EAAMwsB,EAAY8N,EAAS93B,OAAWgqB,EAAW,WAOvDvsB,GAAOsV,GAAGq0B,KAAO,WAChB,MAAOjqC,MAAKI,QAGbE,GAAOsV,GAAGs0B,QAAU5pC,GAAOsV,GAAG6S,QAkBP,kBAAX0hB,SAAyBA,OAAOC,KAC3CD,OAAQ,YAAc,WACrB,MAAO7pC,KAOT,IAEC+pC,IAAUtqC,EAAOO,OAGjBgqC,GAAKvqC,EAAOwqC,CAwBb,OAtBAjqC,IAAOkqC,WAAa,SAAUz3B,GAS7B,MARKhT,GAAOwqC,IAAMjqC,KACjBP,EAAOwqC,EAAID,IAGPv3B,GAAQhT,EAAOO,SAAWA,KAC9BP,EAAOO,OAAS+pC,IAGV/pC,UAMIL,KAAaiG,KACxBnG,EAAOO,OAASP,EAAOwqC,EAAIjqC,IAMrBA"} \ No newline at end of file +{"version":3,"file":"jquery.js","sources":["../../../src/libs/jquery/jquery.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","isArraylike","obj","length","type","jQuery","isWindow","nodeType","winnow","elements","qualifier","not","isFunction","grep","elem","i","call","risSimple","test","filter","inArray","sibling","cur","dir","createOptions","options","object","optionsCache","each","match","rnotwhite","_","flag","detach","addEventListener","removeEventListener","completed","detachEvent","event","readyState","ready","dataAttr","key","data","undefined","name","replace","rmultiDash","toLowerCase","getAttribute","rbrace","parseJSON","e","isEmptyDataObject","isEmptyObject","internalData","pvt","acceptData","ret","thisCache","internalKey","expando","isNode","cache","id","deletedIds","pop","guid","toJSON","noop","extend","camelCase","internalRemoveData","isArray","concat","map","split","cleanData","support","deleteExpando","returnTrue","returnFalse","safeActiveElement","activeElement","err","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","createElement","getAll","context","tag","elems","found","getElementsByTagName","strundefined","querySelectorAll","childNodes","nodeName","push","merge","fixDefaultChecked","rcheckableType","defaultChecked","checked","manipulationTarget","content","firstChild","appendChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","exec","removeAttribute","setGlobalEval","refElements","_data","cloneCopyEvent","src","dest","hasData","l","oldData","curData","events","handle","add","fixCloneNodeIssues","noCloneEvent","removeEvent","text","parentNode","outerHTML","html5Clone","innerHTML","trim","value","defaultSelected","selected","defaultValue","actualDisplay","doc","style","appendTo","body","display","getDefaultComputedStyle","css","defaultDisplay","elemdisplay","iframe","documentElement","contentWindow","contentDocument","write","close","addGetHookIf","conditionFn","hookFn","get","condition","apply","arguments","vendorPropName","capName","charAt","toUpperCase","slice","origName","cssPrefixes","showHide","show","hidden","values","index","isHidden","setPositiveNumber","subtract","matches","rnumsplit","Math","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","Tween","prop","end","easing","prototype","init","createFxNow","setTimeout","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","width","createTween","animation","tween","collection","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","checkDisplay","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","done","hide","_removeData","start","propFilter","specialEasing","cssHooks","expand","Animation","properties","result","stopped","animationPrefilters","deferred","Deferred","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","fx","timer","progress","complete","fail","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","error","buildParams","prefix","traditional","v","rbracket","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","getWindow","defaultView","parentWindow","indexOf","class2type","toString","hasOwn","hasOwnProperty","version","selector","fn","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","constructor","toArray","num","pushStack","prevObject","callback","args","first","eq","last","len","j","sort","splice","copyIsArray","copy","clone","isPlainObject","random","isReady","msg","Array","isNumeric","ownLast","globalEval","execScript","string","makeArray","arr","results","Object","second","invert","callbackInverse","callbackExpect","arg","proxy","Date","Sizzle","seed","m","groups","old","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","contains","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","setAttribute","toSelector","rsibling","testContext","join","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","removeChild","addHandle","handler","attrHandle","siblingCheck","a","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","outerCache","newCache","dirruns","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","compilerCache","sortOrder","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","els","node","hasCompare","parent","top","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","has","innerText","lang","elemLang","hash","location","root","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","n","r","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","stack","once","stopOnFalse","disable","remove","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","source","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","original","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","suffix","expanded","parts","unit","propHooks","eased","step","linear","p","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","JSON","parse","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","abort","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serialize","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/libs/require.js.map b/static/maps/libs/require.js.map index 5027bd808e54..9df7b9eae125 100644 --- a/static/maps/libs/require.js.map +++ b/static/maps/libs/require.js.map @@ -1 +1 @@ -{"version":3,"file":"require.js","sources":["../../src/libs/require.js"],"names":["requirejs","require","define","global","isFunction","it","ostring","call","isArray","each","ary","func","i","length","eachReverse","hasProp","obj","prop","hasOwn","getOwn","eachProp","mixin","target","source","force","deepStringMixin","value","bind","fn","apply","arguments","scripts","document","getElementsByTagName","defaultOnError","err","getGlobal","g","split","part","makeError","id","msg","requireModules","e","Error","requireType","originalError","newContext","contextName","trimDots","splice","normalize","name","baseName","applyMap","pkgName","pkgConfig","mapValue","nameParts","j","nameSegment","foundMap","foundI","foundStarMap","starI","baseParts","normalizedBaseParts","map","config","starMap","charAt","pkgs","slice","concat","join","main","indexOf","substring","removeScript","isBrowser","scriptNode","getAttribute","context","parentNode","removeChild","hasPathFallback","pathConfig","paths","shift","undef","splitPrefix","prefix","index","makeModuleMap","parentModuleMap","isNormalized","url","pluginModule","suffix","parentName","originalName","isDefine","normalizedName","requireCounter","defined","nameToUrl","unnormalizedCounter","parentMap","unnormalized","getModule","depMap","mod","registry","Module","on","defineEmitComplete","error","onError","errback","ids","notified","events","emit","req","takeGlobalQueue","globalDefQueue","apsp","defQueue","cleanRegistry","enabledRegistry","breakCycle","traced","processed","depMaps","depId","dep","depMatched","defineDep","check","checkLoaded","modId","usingPathFallback","waitInterval","waitSeconds","expired","startTime","Date","getTime","noLoads","reqCalls","stillLoading","needCycleCheck","inCheckLoaded","enabled","push","inited","fetched","isWebWorker","checkLoadedTimeoutId","setTimeout","callGetModule","args","init","removeListener","node","ieName","detachEvent","isOpera","removeEventListener","getScriptData","evt","currentTarget","srcElement","onScriptLoad","onScriptError","intakeDefines","handlers","baseUrl","shim","undefEvents","urlFetched","makeRequire","exports","usingExports","module","uri","c","pkg","this","depExports","pluginMaps","depCount","prototype","factory","options","ignore","enable","fetch","enableBuildCallback","deps","callPlugin","load","enabling","cjsModule","defining","execCb","undefined","requireMap","onResourceLoad","defineEmitted","pluginMap","plugin","normalizedMap","normalizedMod","localRequire","fromText","text","textAlt","moduleName","moduleMap","hasInteractive","useInteractive","exec","completeLoad","handler","skipMap","cb","cbs","nextTick","configure","cfg","objs","exportsFn","makeShimExports","packages","pkgObj","location","replace","currDirRegExp","jsSuffixRegExp","callback","ret","relMap","requireMod","__requireJsBuild","get","toUrl","moduleNamePlusExt","ext","lastIndexOf","segment","isRelative","specified","found","shExports","enforceDefine","skipExt","pkgPath","syms","parentModule","parentPath","jsExtRegExp","test","match","urlArgs","type","readyRegExp","readyState","interactiveScript","data","getInteractiveScript","script","s","head","baseElement","dataMain","src","currentlyAddingScript","mainScript","subPath","version","commentRegExp","cjsRequireRegExp","op","Object","toString","hasOwnProperty","ap","Array","window","navigator","importScripts","platform","defContextName","opera","contexts","optional","ctx","createNode","xhtml","createElementNS","createElement","scriptType","charset","async","setAttribute","attachEvent","addEventListener","insertBefore","appendChild","pop","amd","jQuery","eval"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"require.js","sources":["../../src/libs/require.js"],"names":["requirejs","require","define","global","isFunction","it","ostring","call","isArray","each","ary","func","i","length","eachReverse","hasProp","obj","prop","hasOwn","getOwn","eachProp","mixin","target","source","force","deepStringMixin","value","RegExp","bind","fn","apply","arguments","scripts","document","getElementsByTagName","defaultOnError","err","getGlobal","g","split","part","makeError","id","msg","requireModules","e","Error","requireType","originalError","newContext","contextName","trimDots","splice","normalize","name","baseName","applyMap","pkgMain","mapValue","nameParts","j","nameSegment","lastIndex","foundMap","foundI","foundStarMap","starI","normalizedBaseParts","baseParts","map","config","starMap","nodeIdCompat","jsSuffixRegExp","test","replace","charAt","slice","concat","join","outerLoop","pkgs","removeScript","isBrowser","scriptNode","getAttribute","context","parentNode","removeChild","hasPathFallback","pathConfig","paths","shift","undef","makeRequire","skipMap","splitPrefix","prefix","index","indexOf","substring","makeModuleMap","parentModuleMap","isNormalized","url","pluginModule","suffix","parentName","originalName","isDefine","normalizedName","requireCounter","defined","nameToUrl","unnormalizedCounter","parentMap","unnormalized","getModule","depMap","mod","registry","Module","on","defineEmitComplete","error","onError","errback","ids","notified","events","emit","req","takeGlobalQueue","globalDefQueue","apsp","defQueue","cleanRegistry","enabledRegistry","breakCycle","traced","processed","depMaps","depId","dep","depMatched","defineDep","check","checkLoaded","usingPathFallback","waitInterval","waitSeconds","expired","startTime","Date","getTime","noLoads","reqCalls","stillLoading","needCycleCheck","inCheckLoaded","modId","enabled","push","inited","fetched","isWebWorker","checkLoadedTimeoutId","setTimeout","callGetModule","args","init","removeListener","node","ieName","detachEvent","isOpera","removeEventListener","getScriptData","evt","currentTarget","srcElement","onScriptLoad","onScriptError","intakeDefines","handlers","baseUrl","bundles","shim","undefEvents","urlFetched","bundlesMap","exports","usingExports","module","uri","this","depExports","pluginMaps","depCount","prototype","factory","options","ignore","enable","fetch","enableBuildCallback","deps","callPlugin","load","enabling","cjsModule","defining","execCb","undefined","requireMap","onResourceLoad","defineEmitted","pluginMap","plugin","normalizedMap","normalizedMod","bundleId","localRequire","fromText","text","textAlt","moduleName","moduleMap","hasInteractive","useInteractive","exec","completeLoad","handler","cb","cbs","nextTick","configure","cfg","objs","v","exportsFn","makeShimExports","packages","pkgObj","location","main","currDirRegExp","callback","ret","relMap","requireMod","__requireJsBuild","get","toUrl","moduleNamePlusExt","ext","lastIndexOf","segment","isRelative","specified","found","shExports","enforceDefine","skipExt","syms","parentModule","parentPath","jsExtRegExp","match","urlArgs","type","readyRegExp","readyState","interactiveScript","data","getInteractiveScript","script","s","head","baseElement","dataMain","src","currentlyAddingScript","mainScript","subPath","version","commentRegExp","cjsRequireRegExp","op","Object","toString","hasOwnProperty","ap","Array","window","navigator","importScripts","platform","defContextName","opera","contexts","optional","ctx","createNode","xhtml","createElementNS","createElement","scriptType","charset","async","setAttribute","attachEvent","addEventListener","insertBefore","appendChild","skipDataMain","pop","amd","jQuery","eval"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/form/form-data.js.map b/static/maps/mvc/form/form-data.js.map index 7522cbb5ded0..ea0f95980eeb 100644 --- a/static/maps/mvc/form/form-data.js.map +++ b/static/maps/mvc/form/form-data.js.map @@ -1 +1 @@ -{"version":3,"file":"form-data.js","sources":["../../../src/mvc/form/form-data.js"],"names":["define","Backbone","Model","extend","initialize","app","this","checksum","sum","i","field_list","field","JSON","stringify","value","create","add","job_input_id","input_id","input_value","self","map_dict","result_dict","convert","identifier","head","index","node","input","name","type","section_label","block_indices","block_prefix","block_label","pos","indexOf","length","push","parseInt","substr","sort","a","b","id","test_param","selectedCase","matchCase","undefined","ignore","payload","p_id","dict","_iterate","section","$el","match","truevalue","falsevalue","cases","matchModel","model","callback","search","j","cache","inputs","result","matchResponse","response","new_id","separator","Array","parent","children","$","each","child","attr","hasClass","input_list"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"form-data.js","sources":["../../../src/mvc/form/form-data.js"],"names":["define","Backbone","Model","extend","initialize","app","this","checksum","sum","i","field_list","field","JSON","stringify","value","create","add","job_input_id","input_id","input_value","self","map_dict","result_dict","convert","identifier","head","index","node","input","name","type","section_label","block_indices","block_prefix","block_label","pos","indexOf","length","push","parseInt","substr","sort","a","b","id","test_param","selectedCase","matchCase","flat","undefined","ignore","payload","p_id","dict","_iterate","section","$el","match","truevalue","falsevalue","cases","matchModel","model","callback","search","j","cache","inputs","result","matchResponse","response","new_id","separator","Array","parent","children","$","each","child","attr","hasClass","input_list"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/history/history-panel-annotated.js.map b/static/maps/mvc/history/history-panel-annotated.js.map index 4e63720db033..0b83aaf75bbf 100644 --- a/static/maps/mvc/history/history-panel-annotated.js.map +++ b/static/maps/mvc/history/history-panel-annotated.js.map @@ -1 +1 @@ -{"version":3,"file":"history-panel-annotated.js","sources":["../../../src/mvc/history/history-panel-annotated.js"],"names":["define","HPANEL","HDA_LI","HDCA_LI","BASE_MVC","_l","_super","HistoryPanel","AnnotatedHistoryPanel","extend","className","prototype","_buildNewRender","$newRender","call","this","renderHistoryAnnotation","annotation","model","get","find","text","renderItems","$whereTo","$el","replaceWith","$","addClass","views","$list","prepend","append","_attachItems","map","view","stateClass","_","el","classList","c","test","$tr","replace","events","clone","click tr","ev","currentTarget","click","click .icon-btn","stopPropagation","toString"],"mappings":"AAAAA,QACI,4BACA,qBACA,sBACA,eACA,sBACD,SAAUC,EAAQC,EAAQC,EAASC,EAAUC,GAKhD,GAAIC,GAASL,EAAOM,aAShBC,EAAwBF,EAAOG,QAM/BC,UAAeJ,EAAOK,UAAUD,UAAY,2BAK5CE,gBAAkB,WAEd,GAAIC,GAAaP,EAAOK,UAAUC,gBAAgBE,KAAMC,KAExD,OADAA,MAAKC,wBAAyBH,GACvBA,GAIXG,wBAA0B,SAAUH,GAChC,GAAII,GAAaF,KAAKG,MAAMC,IAAK,aAC5BF,IACLJ,EAAWO,KAAM,iCAAkCC,KAAMJ,IAM7DK,YAAc,SAAUC,GACpBA,EAAWA,GAAYR,KAAKS,IAG5BD,EAASH,KAAM,eACVK,YAAaC,EAAG,YAAaC,SAAU,cAG5C,IAAIC,GAAQtB,EAAOK,UAAUW,YAAYR,KAAMC,KAAMQ,EAMrD,OALAR,MAAKc,MAAON,GACPO,QAASJ,EAAG,SAAUC,SAAU,WAAYI,QACzCL,EAAG,SAAUL,KAAMhB,EAAI,YACvBqB,EAAG,SAAUL,KAAMhB,EAAI,kBAExBuB,GAOXI,aAAe,SAAUT,GAgBrB,MAfAR,MAAKc,MAAON,GAAWQ,OAAQhB,KAAKa,MAAMK,IAAK,SAAUC,GAGrD,GAAIC,GAAaC,EAAEhB,KAAMc,EAAKG,GAAGC,UAAW,SAAUC,GAAK,MAAO,WAAeC,KAAMD,KACnFtB,EAAaiB,EAAKhB,MAAMC,IAAK,eAAkB,GAC/CsB,EAAMf,EAAG,SAAUK,QACfL,EAAG,SAAUC,SAAU,sBAAuBI,OAAQG,EAAKV,KAItDG,SAAUQ,EAAYA,EAAWO,QAAS,IAAK,WAAa,IACjEhB,EAAG,SAAUC,SAAU,mBAAoBN,KAAMJ,IAEzD,OAAOwB,MAEJ1B,MAKX4B,OAASP,EAAE3B,OAAQ2B,EAAEQ,MAAOtC,EAAOK,UAAUgC,SAEzCE,WAAa,SAAUC,GACnBpB,EAAGoB,EAAGC,eAAgB3B,KAAM,cAAe4B,SAG/CC,kBAAoB,SAAUH,GAC1BA,EAAGI,qBAMXC,SAAc,WACV,MAAO,0BAA8BpC,KAAW,MAAIA,KAAKG,MAAMC,IAAK,QAAU,IAAU,MAM5F,QACIX,sBAA+BA"} \ No newline at end of file +{"version":3,"file":"history-panel-annotated.js","sources":["../../../src/mvc/history/history-panel-annotated.js"],"names":["define","HPANEL","HDA_LI","HDCA_LI","BASE_MVC","_l","_super","HistoryPanel","AnnotatedHistoryPanel","extend","className","prototype","_buildNewRender","$newRender","call","this","renderHistoryAnnotation","annotation","model","get","find","text","renderItems","$whereTo","$el","replaceWith","$","addClass","views","$list","prepend","append","_attachItems","map","view","stateClass","_","el","classList","c","test","$tr","replace","events","clone","click tr","ev","currentTarget","click","click .icon-btn","stopPropagation","$currTarget","size","attr","dropdown","toString"],"mappings":"AAAAA,QACI,4BACA,qBACA,sBACA,eACA,sBACD,SAAUC,EAAQC,EAAQC,EAASC,EAAUC,GAKhD,GAAIC,GAASL,EAAOM,aAShBC,EAAwBF,EAAOG,QAM/BC,UAAeJ,EAAOK,UAAUD,UAAY,2BAK5CE,gBAAkB,WAEd,GAAIC,GAAaP,EAAOK,UAAUC,gBAAgBE,KAAMC,KAExD,OADAA,MAAKC,wBAAyBH,GACvBA,GAIXG,wBAA0B,SAAUH,GAChC,GAAII,GAAaF,KAAKG,MAAMC,IAAK,aAC5BF,IACLJ,EAAWO,KAAM,iCAAkCC,KAAMJ,IAM7DK,YAAc,SAAUC,GACpBA,EAAWA,GAAYR,KAAKS,IAG5BD,EAASH,KAAM,eACVK,YAAaC,EAAG,YAAaC,SAAU,cAG5C,IAAIC,GAAQtB,EAAOK,UAAUW,YAAYR,KAAMC,KAAMQ,EAMrD,OALAR,MAAKc,MAAON,GACPO,QAASJ,EAAG,SAAUC,SAAU,WAAYI,QACzCL,EAAG,SAAUL,KAAMhB,EAAI,YACvBqB,EAAG,SAAUL,KAAMhB,EAAI,kBAExBuB,GAOXI,aAAe,SAAUT,GAgBrB,MAfAR,MAAKc,MAAON,GAAWQ,OAAQhB,KAAKa,MAAMK,IAAK,SAAUC,GAGrD,GAAIC,GAAaC,EAAEhB,KAAMc,EAAKG,GAAGC,UAAW,SAAUC,GAAK,MAAO,WAAeC,KAAMD,KACnFtB,EAAaiB,EAAKhB,MAAMC,IAAK,eAAkB,GAC/CsB,EAAMf,EAAG,SAAUK,QACfL,EAAG,SAAUC,SAAU,sBAAuBI,OAAQG,EAAKV,KAItDG,SAAUQ,EAAYA,EAAWO,QAAS,IAAK,WAAa,IACjEhB,EAAG,SAAUC,SAAU,mBAAoBN,KAAMJ,IAEzD,OAAOwB,MAEJ1B,MAKX4B,OAASP,EAAE3B,OAAQ2B,EAAEQ,MAAOtC,EAAOK,UAAUgC,SAEzCE,WAAa,SAAUC,GACnBpB,EAAGoB,EAAGC,eAAgB3B,KAAM,cAAe4B,SAG/CC,kBAAoB,SAAUH,GAC1BA,EAAGI,iBAGH,IAAIC,GAAczB,EAAGoB,EAAGC,cACpBI,GAAYC,QAAgD,aAAtCD,EAAYE,KAAM,gBACxCF,EAAYG,SAAU,aAOlCC,SAAc,WACV,MAAO,0BAA8BxC,KAAW,MAAIA,KAAKG,MAAMC,IAAK,QAAU,IAAU,MAM5F,QACIX,sBAA+BA"} \ No newline at end of file diff --git a/static/maps/mvc/tools/tools-form-workflow.js.map b/static/maps/mvc/tools/tools-form-workflow.js.map index f2f63f476e9e..ed0fd421d41e 100644 --- a/static/maps/mvc/tools/tools-form-workflow.js.map +++ b/static/maps/mvc/tools/tools-form-workflow.js.map @@ -1 +1 @@ -{"version":3,"file":"tools-form-workflow.js","sources":["../../../src/mvc/tools/tools-form-workflow.js"],"names":["define","Utils","ToolFormBase","View","extend","initialize","options","this","node","workflow","active_node","console","debug","post_job_actions","merge","text_enable","text_disable","is_workflow","narrow","initial_errors","cls","update_url","galaxy_config","root","update","data","self","update_field_data","form","errors","tool_model","deepeach","inputs","item","type","test_param","optional","get","url","cache","success","datatypes","_makeSections","prototype","call","uid","label","name","area","help","value","annotation","output_id","output_terminals","Object","keys","String","Boolean","ignore","payload","host","window","location","i","_makeSection","visit","head","head_list","push","input","action","argument","p_id","p","d","j","expand","action_arguments","slice","extensions","key",1,"sort","a","b","unshift","input_config","title"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tools-form-workflow.js","sources":["../../../src/mvc/tools/tools-form-workflow.js"],"names":["define","Utils","ToolFormBase","View","extend","initialize","options","this","node","workflow","active_node","console","debug","post_job_actions","merge","text_enable","text_disable","is_workflow","narrow","initial_errors","cls","update_url","galaxy_config","root","update","data","self","update_field_data","form","errors","tool_model","deepeach","inputs","item","type","test_param","collapsible","indexOf","get","url","cache","success","datatypes","_makeSections","prototype","call","uid","label","name","area","help","value","annotation","output_id","output_terminals","Object","keys","String","Boolean","ignore","payload","host","window","location","i","_makeSection","visit","head","head_list","push","input","action","argument","p_id","p","d","j","expanded","action_arguments","slice","extensions","key",1,"sort","a","b","unshift","input_config","title","flat"],"mappings":"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"} \ No newline at end of file diff --git a/static/scripts/libs/d3.js b/static/scripts/libs/d3.js index aaa7c26f055d..9d3c0d9e8066 100755 --- a/static/scripts/libs/d3.js +++ b/static/scripts/libs/d3.js @@ -1,8 +1,6 @@ -d3=function(){function a(a,b){return b>a?-1:a>b?1:a>=b?0:0/0}function b(a){return null!=a&&!isNaN(a)}function c(a){return{left:function(b,c,d,e){for(arguments.length<3&&(d=0),arguments.length<4&&(e=b.length);e>d;){var f=d+e>>>1;a(b[f],c)<0?d=f+1:e=f}return d},right:function(b,c,d,e){for(arguments.length<3&&(d=0),arguments.length<4&&(e=b.length);e>d;){var f=d+e>>>1;a(b[f],c)>0?e=f:d=f+1}return d}}}function d(a){return a.length}function e(a){for(var b=1;a*b%1;)b*=10;return b}function f(a,b){try{for(var c in b)Object.defineProperty(a.prototype,c,{value:b[c],enumerable:!1})}catch(d){a.prototype=b}}function g(){}function h(a){return jg+a in this}function i(a){return a=jg+a,a in this&&delete this[a]}function j(){var a=[];return this.forEach(function(b){a.push(b)}),a}function k(){var a=0;for(var b in this)b.charCodeAt(0)===kg&&++a;return a}function l(){for(var a in this)if(a.charCodeAt(0)===kg)return!1;return!0}function m(){}function n(a,b,c){return function(){var d=c.apply(b,arguments);return d===b?a:d}}function o(a,b){if(b in a)return b;b=b.charAt(0).toUpperCase()+b.substring(1);for(var c=0,d=lg.length;d>c;++c){var e=lg[c]+b;if(e in a)return e}}function p(){}function q(){}function r(a){function b(){for(var b,d=c,e=-1,f=d.length;++ec;c++)for(var e,f=a[c],g=0,h=f.length;h>g;g++)(e=f[g])&&b(e,g,c);return a}function L(a){return ng(a,ug),a}function M(a){var b,c;return function(d,e,f){var g,h=a[f].update,i=h.length;for(f!=c&&(c=f,b=0),e>=b&&(b=e+1);!(g=h[b])&&++b0&&(a=a.substring(0,h));var j=wg.get(a);return j&&(a=j,i=Q),h?b?e:d:b?p:f}function P(a,b){return function(c){var d=Wf.event;Wf.event=c,b[0]=this.__data__;try{a.apply(this,b)}finally{Wf.event=d}}}function Q(a,b){var c=P(a,b);return function(a){var b=this,d=a.relatedTarget;d&&(d===b||8&d.compareDocumentPosition(b))||c.call(b,a)}}function R(){var a=".dragsuppress-"+ ++yg,b="click"+a,c=Wf.select(_f).on("touchmove"+a,s).on("dragstart"+a,s).on("selectstart"+a,s);if(xg){var d=$f.style,e=d[xg];d[xg]="none"}return function(f){function g(){c.on(b,null)}c.on(a,null),xg&&(d[xg]=e),f&&(c.on(b,function(){s(),g()},!0),setTimeout(g,0))}}function S(a,b){b.changedTouches&&(b=b.changedTouches[0]);var c=a.ownerSVGElement||a;if(c.createSVGPoint){var d=c.createSVGPoint();return d.x=b.clientX,d.y=b.clientY,d=d.matrixTransform(a.getScreenCTM().inverse()),[d.x,d.y]}var e=a.getBoundingClientRect();return[b.clientX-e.left-a.clientLeft,b.clientY-e.top-a.clientTop]}function T(){return Wf.event.changedTouches[0].identifier}function U(){return Wf.event.target}function V(){return _f}function W(a){return a>0?1:0>a?-1:0}function X(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])}function Y(a){return a>1?0:-1>a?zg:Math.acos(a)}function Z(a){return a>1?Bg:-1>a?-Bg:Math.asin(a)}function $(a){return((a=Math.exp(a))-1/a)/2}function _(a){return((a=Math.exp(a))+1/a)/2}function aa(a){return((a=Math.exp(2*a))-1)/(a+1)}function ba(a){return(a=Math.sin(a/2))*a}function ca(){}function da(a,b,c){return new ea(a,b,c)}function ea(a,b,c){this.h=a,this.s=b,this.l=c}function fa(a,b,c){function d(a){return a>360?a-=360:0>a&&(a+=360),60>a?f+(g-f)*a/60:180>a?g:240>a?f+(g-f)*(240-a)/60:f}function e(a){return Math.round(255*d(a))}var f,g;return a=isNaN(a)?0:(a%=360)<0?a+360:a,b=isNaN(b)?0:0>b?0:b>1?1:b,c=0>c?0:c>1?1:c,g=.5>=c?c*(1+b):c+b-c*b,f=2*c-g,sa(e(a+120),e(a),e(a-120))}function ga(a,b,c){return new ha(a,b,c)}function ha(a,b,c){this.h=a,this.c=b,this.l=c}function ia(a,b,c){return isNaN(a)&&(a=0),isNaN(b)&&(b=0),ja(c,Math.cos(a*=Eg)*b,Math.sin(a)*b)}function ja(a,b,c){return new ka(a,b,c)}function ka(a,b,c){this.l=a,this.a=b,this.b=c}function la(a,b,c){var d=(a+16)/116,e=d+b/500,f=d-c/200;return e=na(e)*Pg,d=na(d)*Qg,f=na(f)*Rg,sa(pa(3.2404542*e-1.5371385*d-.4985314*f),pa(-.969266*e+1.8760108*d+.041556*f),pa(.0556434*e-.2040259*d+1.0572252*f))}function ma(a,b,c){return a>0?ga(Math.atan2(c,b)*Fg,Math.sqrt(b*b+c*c),a):ga(0/0,0/0,a)}function na(a){return a>.206893034?a*a*a:(a-4/29)/7.787037}function oa(a){return a>.008856?Math.pow(a,1/3):7.787037*a+4/29}function pa(a){return Math.round(255*(.00304>=a?12.92*a:1.055*Math.pow(a,1/2.4)-.055))}function qa(a){return sa(a>>16,a>>8&255,255&a)}function ra(a){return qa(a)+""}function sa(a,b,c){return new ta(a,b,c)}function ta(a,b,c){this.r=a,this.g=b,this.b=c}function ua(a){return 16>a?"0"+Math.max(0,a).toString(16):Math.min(255,a).toString(16)}function va(a,b,c){var d,e,f,g=0,h=0,i=0;if(d=/([a-z]+)\((.*)\)/i.exec(a))switch(e=d[2].split(","),d[1]){case"hsl":return c(parseFloat(e[0]),parseFloat(e[1])/100,parseFloat(e[2])/100);case"rgb":return b(za(e[0]),za(e[1]),za(e[2]))}return(f=Ug.get(a))?b(f.r,f.g,f.b):(null==a||"#"!==a.charAt(0)||isNaN(f=parseInt(a.substring(1),16))||(4===a.length?(g=(3840&f)>>4,g=g>>4|g,h=240&f,h=h>>4|h,i=15&f,i=i<<4|i):7===a.length&&(g=(16711680&f)>>16,h=(65280&f)>>8,i=255&f)),b(g,h,i))}function wa(a,b,c){var d,e,f=Math.min(a/=255,b/=255,c/=255),g=Math.max(a,b,c),h=g-f,i=(g+f)/2;return h?(e=.5>i?h/(g+f):h/(2-g-f),d=a==g?(b-c)/h+(c>b?6:0):b==g?(c-a)/h+2:(a-b)/h+4,d*=60):(d=0/0,e=i>0&&1>i?0:d),da(d,e,i)}function xa(a,b,c){a=ya(a),b=ya(b),c=ya(c);var d=oa((.4124564*a+.3575761*b+.1804375*c)/Pg),e=oa((.2126729*a+.7151522*b+.072175*c)/Qg),f=oa((.0193339*a+.119192*b+.9503041*c)/Rg);return ja(116*e-16,500*(d-e),200*(e-f))}function ya(a){return(a/=255)<=.04045?a/12.92:Math.pow((a+.055)/1.055,2.4)}function za(a){var b=parseFloat(a);return"%"===a.charAt(a.length-1)?Math.round(2.55*b):b}function Aa(a){return"function"==typeof a?a:function(){return a}}function Ba(a){return a}function Ca(a){return function(b,c,d){return 2===arguments.length&&"function"==typeof c&&(d=c,c=null),Da(b,c,a,d)}}function Da(a,b,c,d){function e(){var a,b=i.status;if(!b&&i.responseText||b>=200&&300>b||304===b){try{a=c.call(f,i)}catch(d){return void g.error.call(f,d)}g.load.call(f,a)}else g.error.call(f,i)}var f={},g=Wf.dispatch("beforesend","progress","load","error"),h={},i=new XMLHttpRequest,j=null;return!_f.XDomainRequest||"withCredentials"in i||!/^(http(s)?:)?\/\//.test(a)||(i=new XDomainRequest),"onload"in i?i.onload=i.onerror=e:i.onreadystatechange=function(){i.readyState>3&&e()},i.onprogress=function(a){var b=Wf.event;Wf.event=a;try{g.progress.call(f,i)}finally{Wf.event=b}},f.header=function(a,b){return a=(a+"").toLowerCase(),arguments.length<2?h[a]:(null==b?delete h[a]:h[a]=b+"",f)},f.mimeType=function(a){return arguments.length?(b=null==a?null:a+"",f):b},f.responseType=function(a){return arguments.length?(j=a,f):j},f.response=function(a){return c=a,f},["get","post"].forEach(function(a){f[a]=function(){return f.send.apply(f,[a].concat(Yf(arguments)))}}),f.send=function(c,d,e){if(2===arguments.length&&"function"==typeof d&&(e=d,d=null),i.open(c,a,!0),null==b||"accept"in h||(h.accept=b+",*/*"),i.setRequestHeader)for(var k in h)i.setRequestHeader(k,h[k]);return null!=b&&i.overrideMimeType&&i.overrideMimeType(b),null!=j&&(i.responseType=j),null!=e&&f.on("error",e).on("load",function(a){e(null,a)}),g.beforesend.call(f,i),i.send(null==d?null:d),f},f.abort=function(){return i.abort(),f},Wf.rebind(f,g,"on"),null==d?f:f.get(Ea(d))}function Ea(a){return 1===a.length?function(b,c){a(null==b?c:null)}:a}function Fa(){var a=Ga(),b=Ha()-a;b>24?(isFinite(b)&&(clearTimeout(Yg),Yg=setTimeout(Fa,b)),Xg=0):(Xg=1,$g(Fa))}function Ga(){var a=Date.now();for(Zg=Vg;Zg;)a>=Zg.t&&(Zg.f=Zg.c(a-Zg.t)),Zg=Zg.n;return a}function Ha(){for(var a,b=Vg,c=1/0;b;)b.f?b=a?a.n=b.n:Vg=b.n:(b.t8?function(a){return a/c}:function(a){return a*c},symbol:a}}function Ka(a){var b=a.decimal,c=a.thousands,d=a.grouping,e=a.currency,f=d?function(a){for(var b=a.length,e=[],f=0,g=d[0];b>0&&g>0;)e.push(a.substring(b-=g,b+g)),g=d[f=(f+1)%d.length];return e.reverse().join(c)}:Ba;return function(a){var c=ah.exec(a),d=c[1]||" ",g=c[2]||">",h=c[3]||"",i=c[4]||"",j=c[5],k=+c[6],l=c[7],m=c[8],n=c[9],o=1,p="",q="",r=!1;switch(m&&(m=+m.substring(1)),(j||"0"===d&&"="===g)&&(j=d="0",g="=",l&&(k-=Math.floor((k-1)/4))),n){case"n":l=!0,n="g";break;case"%":o=100,q="%",n="f";break;case"p":o=100,q="%",n="r";break;case"b":case"o":case"x":case"X":"#"===i&&(p="0"+n.toLowerCase());case"c":case"d":r=!0,m=0;break;case"s":o=-1,n="r"}"$"===i&&(p=e[0],q=e[1]),"r"!=n||m||(n="g"),null!=m&&("g"==n?m=Math.max(1,Math.min(21,m)):("e"==n||"f"==n)&&(m=Math.max(0,Math.min(20,m)))),n=bh.get(n)||La;var s=j&&l;return function(a){var c=q;if(r&&a%1)return"";var e=0>a||0===a&&0>1/a?(a=-a,"-"):h;if(0>o){var i=Wf.formatPrefix(a,m);a=i.scale(a),c=i.symbol+q}else a*=o;a=n(a,m);var t=a.lastIndexOf("."),u=0>t?a:a.substring(0,t),v=0>t?"":b+a.substring(t+1);!j&&l&&(u=f(u));var w=p.length+u.length+v.length+(s?0:e.length),x=k>w?new Array(w=k-w+1).join(d):"";return s&&(u=f(x+u)),e+=p,a=u+v,("<"===g?e+a+x:">"===g?x+e+a:"^"===g?x.substring(0,w>>=1)+e+a+x.substring(w):e+(s?a:x+a))+c}}}function La(a){return a+""}function Ma(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Na(a,b,c){function d(b){var c=a(b),d=f(c,1);return d-b>b-c?c:d}function e(c){return b(c=a(new dh(c-1)),1),c}function f(a,c){return b(a=new dh(+a),c),a}function g(a,d,f){var g=e(a),h=[];if(f>1)for(;d>g;)c(g)%f||h.push(new Date(+g)),b(g,1);else for(;d>g;)h.push(new Date(+g)),b(g,1);return h}function h(a,b,c){try{dh=Ma;var d=new Ma;return d._=a,g(d,b,c)}finally{dh=Date}}a.floor=a,a.round=d,a.ceil=e,a.offset=f,a.range=g;var i=a.utc=Oa(a);return i.floor=i,i.round=Oa(d),i.ceil=Oa(e),i.offset=Oa(f),i.range=h,a}function Oa(a){return function(b,c){try{dh=Ma;var d=new Ma;return d._=b,a(d,c)._}finally{dh=Date}}}function Pa(a){function b(a){function b(b){for(var c,e,f,g=[],h=-1,i=0;++hh;){if(d>=j)return-1;if(e=b.charCodeAt(h++),37===e){if(g=b.charAt(h++),f=D[g in fh?b.charAt(h++):g],!f||(d=f(a,c,d))<0)return-1}else if(e!=c.charCodeAt(d++))return-1}return d}function d(a,b,c){w.lastIndex=0;var d=w.exec(b.substring(c));return d?(a.w=x.get(d[0].toLowerCase()),c+d[0].length):-1}function e(a,b,c){u.lastIndex=0;var d=u.exec(b.substring(c));return d?(a.w=v.get(d[0].toLowerCase()),c+d[0].length):-1}function f(a,b,c){A.lastIndex=0;var d=A.exec(b.substring(c));return d?(a.m=B.get(d[0].toLowerCase()),c+d[0].length):-1}function g(a,b,c){y.lastIndex=0;var d=y.exec(b.substring(c));return d?(a.m=z.get(d[0].toLowerCase()),c+d[0].length):-1}function h(a,b,d){return c(a,C.c.toString(),b,d)}function i(a,b,d){return c(a,C.x.toString(),b,d)}function j(a,b,d){return c(a,C.X.toString(),b,d)}function k(a,b,c){var d=t.get(b.substring(c,c+=2).toLowerCase());return null==d?-1:(a.p=d,c)}var l=a.dateTime,m=a.date,n=a.time,o=a.periods,p=a.days,q=a.shortDays,r=a.months,s=a.shortMonths;b.utc=function(a){function c(a){try{dh=Ma;var b=new dh;return b._=a,d(b)}finally{dh=Date}}var d=b(a);return c.parse=function(a){try{dh=Ma;var b=d.parse(a);return b&&b._}finally{dh=Date}},c.toString=d.toString,c},b.multi=b.utc.multi=hb;var t=Wf.map(),u=Ra(p),v=Sa(p),w=Ra(q),x=Sa(q),y=Ra(r),z=Sa(r),A=Ra(s),B=Sa(s);o.forEach(function(a,b){t.set(a.toLowerCase(),b)});var C={a:function(a){return q[a.getDay()]},A:function(a){return p[a.getDay()]},b:function(a){return s[a.getMonth()]},B:function(a){return r[a.getMonth()]},c:b(l),d:function(a,b){return Qa(a.getDate(),b,2)},e:function(a,b){return Qa(a.getDate(),b,2)},H:function(a,b){return Qa(a.getHours(),b,2)},I:function(a,b){return Qa(a.getHours()%12||12,b,2)},j:function(a,b){return Qa(1+ch.dayOfYear(a),b,3)},L:function(a,b){return Qa(a.getMilliseconds(),b,3)},m:function(a,b){return Qa(a.getMonth()+1,b,2)},M:function(a,b){return Qa(a.getMinutes(),b,2)},p:function(a){return o[+(a.getHours()>=12)]},S:function(a,b){return Qa(a.getSeconds(),b,2)},U:function(a,b){return Qa(ch.sundayOfYear(a),b,2)},w:function(a){return a.getDay()},W:function(a,b){return Qa(ch.mondayOfYear(a),b,2)},x:b(m),X:b(n),y:function(a,b){return Qa(a.getFullYear()%100,b,2)},Y:function(a,b){return Qa(a.getFullYear()%1e4,b,4)},Z:fb,"%":function(){return"%"}},D={a:d,A:e,b:f,B:g,c:h,d:_a,e:_a,H:bb,I:bb,j:ab,L:eb,m:$a,M:cb,p:k,S:db,U:Ua,w:Ta,W:Va,x:i,X:j,y:Xa,Y:Wa,Z:Ya,"%":gb};return b}function Qa(a,b,c){var d=0>a?"-":"",e=(d?-a:a)+"",f=e.length;return d+(c>f?new Array(c-f+1).join(b)+e:e)}function Ra(a){return new RegExp("^(?:"+a.map(Wf.requote).join("|")+")","i")}function Sa(a){for(var b=new g,c=-1,d=a.length;++c68?1900:2e3)}function $a(a,b,c){gh.lastIndex=0;var d=gh.exec(b.substring(c,c+2));return d?(a.m=d[0]-1,c+d[0].length):-1}function _a(a,b,c){gh.lastIndex=0;var d=gh.exec(b.substring(c,c+2));return d?(a.d=+d[0],c+d[0].length):-1}function ab(a,b,c){gh.lastIndex=0;var d=gh.exec(b.substring(c,c+3));return d?(a.j=+d[0],c+d[0].length):-1}function bb(a,b,c){gh.lastIndex=0;var d=gh.exec(b.substring(c,c+2));return d?(a.H=+d[0],c+d[0].length):-1}function cb(a,b,c){gh.lastIndex=0;var d=gh.exec(b.substring(c,c+2));return d?(a.M=+d[0],c+d[0].length):-1}function db(a,b,c){gh.lastIndex=0;var d=gh.exec(b.substring(c,c+2));return d?(a.S=+d[0],c+d[0].length):-1}function eb(a,b,c){gh.lastIndex=0;var d=gh.exec(b.substring(c,c+3));return d?(a.L=+d[0],c+d[0].length):-1}function fb(a){var b=a.getTimezoneOffset(),c=b>0?"-":"+",d=~~(ig(b)/60),e=ig(b)%60;return c+Qa(d,"0",2)+Qa(e,"0",2)}function gb(a,b,c){hh.lastIndex=0;var d=hh.exec(b.substring(c,c+1));return d?c+d[0].length:-1}function hb(a){for(var b=a.length,c=-1;++c=0?1:-1,h=g*c,i=Math.cos(b),j=Math.sin(b),k=f*j,l=e*i+k*Math.cos(h),m=k*g*Math.sin(h);nh.add(Math.atan2(m,l)),d=a,e=i,f=j}var b,c,d,e,f;oh.point=function(g,h){oh.point=a,d=(b=g)*Eg,e=Math.cos(h=(c=h)*Eg/2+zg/4),f=Math.sin(h)},oh.lineEnd=function(){a(b,c)}}function ob(a){var b=a[0],c=a[1],d=Math.cos(c);return[d*Math.cos(b),d*Math.sin(b),Math.sin(c)]}function pb(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function qb(a,b){return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]}function rb(a,b){a[0]+=b[0],a[1]+=b[1],a[2]+=b[2]}function sb(a,b){return[a[0]*b,a[1]*b,a[2]*b]}function tb(a){var b=Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);a[0]/=b,a[1]/=b,a[2]/=b}function ub(a){return[Math.atan2(a[1],a[0]),Z(a[2])]}function vb(a,b){return ig(a[0]-b[0])h;++h)e.point((c=a[h])[0],c[1]);return void e.lineEnd()}var i=new Eb(c,a,null,!0),j=new Eb(c,null,i,!1);i.o=j,f.push(i),g.push(j),i=new Eb(d,a,null,!1),j=new Eb(d,null,i,!0),i.o=j,f.push(i),g.push(j)}}),g.sort(b),Db(f),Db(g),f.length){for(var h=0,i=c,j=g.length;j>h;++h)g[h].e=i=!i;for(var k,l,m=f[0];;){for(var n=m,o=!0;n.v;)if((n=n.n)===m)return;k=n.z,e.lineStart();do{if(n.v=n.o.v=!0,n.e){if(o)for(var h=0,j=k.length;j>h;++h)e.point((l=k[h])[0],l[1]);else d(n.x,n.n.x,1,e);n=n.n}else{if(o){k=n.p.z;for(var h=k.length-1;h>=0;--h)e.point((l=k[h])[0],l[1])}else d(n.x,n.p.x,-1,e);n=n.p}n=n.o,k=n.z,o=!o}while(!n.v);e.lineEnd()}}}function Db(a){if(b=a.length){for(var b,c,d=0,e=a[0];++d0){for(v||(f.polygonStart(),v=!0),f.lineStart();++g1&&2&b&&c.push(c.pop().concat(c.shift())),n.push(c.filter(Gb))}var n,o,p,q=b(f),r=e.invert(d[0],d[1]),s={point:g,lineStart:i,lineEnd:j,polygonStart:function(){s.point=k,s.lineStart=l,s.lineEnd=m,n=[],o=[]},polygonEnd:function(){s.point=g,s.lineStart=i,s.lineEnd=j,n=Wf.merge(n);var a=Jb(r,o);n.length?(v||(f.polygonStart(),v=!0),Cb(n,Ib,a,c,f)):a&&(v||(f.polygonStart(),v=!0),f.lineStart(),c(null,null,1,f),f.lineEnd()),v&&(f.polygonEnd(),v=!1),n=o=null},sphere:function(){f.polygonStart(),f.lineStart(),c(null,null,1,f),f.lineEnd(),f.polygonEnd()}},t=Hb(),u=b(t),v=!1;return s}}function Gb(a){return a.length>1}function Hb(){var a,b=[];return{lineStart:function(){b.push(a=[])},point:function(b,c){a.push([b,c])},lineEnd:p,buffer:function(){var c=b;return b=[],a=null,c},rejoin:function(){b.length>1&&b.push(b.pop().concat(b.shift()))}}}function Ib(a,b){return((a=a.x)[0]<0?a[1]-Bg-Cg:Bg-a[1])-((b=b.x)[0]<0?b[1]-Bg-Cg:Bg-b[1])}function Jb(a,b){var c=a[0],d=a[1],e=[Math.sin(c),-Math.cos(c),0],f=0,g=0;nh.reset();for(var h=0,i=b.length;i>h;++h){var j=b[h],k=j.length;if(k)for(var l=j[0],m=l[0],n=l[1]/2+zg/4,o=Math.sin(n),p=Math.cos(n),q=1;;){q===k&&(q=0),a=j[q];var r=a[0],s=a[1]/2+zg/4,t=Math.sin(s),u=Math.cos(s),v=r-m,w=v>=0?1:-1,x=w*v,y=x>zg,z=o*t;if(nh.add(Math.atan2(z*w*Math.sin(x),p*u+z*Math.cos(x))),f+=y?v+w*Ag:v,y^m>=c^r>=c){var A=qb(ob(l),ob(a));tb(A);var B=qb(e,A);tb(B);var C=(y^v>=0?-1:1)*Z(B[2]);(d>C||d===C&&(A[0]||A[1]))&&(g+=y^v>=0?1:-1)}if(!q++)break;m=r,o=t,p=u,l=a}}return(-Cg>f||Cg>f&&0>nh)^1&g}function Kb(a){var b,c=0/0,d=0/0,e=0/0;return{lineStart:function(){a.lineStart(),b=1},point:function(f,g){var h=f>0?zg:-zg,i=ig(f-c);ig(i-zg)0?Bg:-Bg),a.point(e,d),a.lineEnd(),a.lineStart(),a.point(h,d),a.point(f,d),b=0):e!==h&&i>=zg&&(ig(c-e)Cg?Math.atan((Math.sin(b)*(f=Math.cos(d))*Math.sin(c)-Math.sin(d)*(e=Math.cos(b))*Math.sin(a))/(e*f*g)):(b+d)/2}function Mb(a,b,c,d){var e;if(null==a)e=c*Bg,d.point(-zg,e),d.point(0,e),d.point(zg,e),d.point(zg,0),d.point(zg,-e),d.point(0,-e),d.point(-zg,-e),d.point(-zg,0),d.point(-zg,e);else if(ig(a[0]-b[0])>Cg){var f=a[0]f}function c(a){var c,f,i,j,k;return{lineStart:function(){j=i=!1,k=1},point:function(l,m){var n,o=[l,m],p=b(l,m),q=g?p?0:e(l,m):p?e(l+(0>l?zg:-zg),m):0;if(!c&&(j=i=p)&&a.lineStart(),p!==i&&(n=d(c,o),(vb(c,n)||vb(o,n))&&(o[0]+=Cg,o[1]+=Cg,p=b(o[0],o[1]))),p!==i)k=0,p?(a.lineStart(),n=d(o,c),a.point(n[0],n[1])):(n=d(c,o),a.point(n[0],n[1]),a.lineEnd()),c=n;else if(h&&c&&g^p){var r;q&f||!(r=d(o,c,!0))||(k=0,g?(a.lineStart(),a.point(r[0][0],r[0][1]),a.point(r[1][0],r[1][1]),a.lineEnd()):(a.point(r[1][0],r[1][1]),a.lineEnd(),a.lineStart(),a.point(r[0][0],r[0][1])))}!p||c&&vb(c,o)||a.point(o[0],o[1]),c=o,i=p,f=q},lineEnd:function(){i&&a.lineEnd(),c=null},clean:function(){return k|(j&&i)<<1}}}function d(a,b,c){var d=ob(a),e=ob(b),g=[1,0,0],h=qb(d,e),i=pb(h,h),j=h[0],k=i-j*j;if(!k)return!c&&a;var l=f*i/k,m=-f*j/k,n=qb(g,h),o=sb(g,l),p=sb(h,m);rb(o,p);var q=n,r=pb(o,q),s=pb(q,q),t=r*r-s*(pb(o,o)-1);if(!(0>t)){var u=Math.sqrt(t),v=sb(q,(-r-u)/s);if(rb(v,o),v=ub(v),!c)return v;var w,x=a[0],y=b[0],z=a[1],A=b[1];x>y&&(w=x,x=y,y=w);var B=y-x,C=ig(B-zg)B;if(!C&&z>A&&(w=z,z=A,A=w),D?C?z+A>0^v[1]<(ig(v[0]-x)zg^(x<=v[0]&&v[0]<=y)){var E=sb(q,(-r+u)/s);return rb(E,o),[v,ub(E)]}}}function e(b,c){var d=g?a:zg-a,e=0;return-d>b?e|=1:b>d&&(e|=2),-d>c?e|=4:c>d&&(e|=8),e}var f=Math.cos(a),g=f>0,h=ig(f)>Cg,i=nc(a,6*Eg);return Fb(b,c,i,g?[0,-a]:[-zg,a-zg])}function Ob(a,b,c,d){return function(e){var f,g=e.a,h=e.b,i=g.x,j=g.y,k=h.x,l=h.y,m=0,n=1,o=k-i,p=l-j;if(f=a-i,o||!(f>0)){if(f/=o,0>o){if(m>f)return;n>f&&(n=f)}else if(o>0){if(f>n)return;f>m&&(m=f)}if(f=c-i,o||!(0>f)){if(f/=o,0>o){if(f>n)return;f>m&&(m=f)}else if(o>0){if(m>f)return;n>f&&(n=f)}if(f=b-j,p||!(f>0)){if(f/=p,0>p){if(m>f)return;n>f&&(n=f)}else if(p>0){if(f>n)return;f>m&&(m=f)}if(f=d-j,p||!(0>f)){if(f/=p,0>p){if(f>n)return;f>m&&(m=f)}else if(p>0){if(m>f)return;n>f&&(n=f)}return m>0&&(e.a={x:i+m*o,y:j+m*p}),1>n&&(e.b={x:i+n*o,y:j+n*p}),e}}}}}}function Pb(a,b,c,d){function e(d,e){return ig(d[0]-a)0?0:3:ig(d[0]-c)0?2:1:ig(d[1]-b)0?1:0:e>0?3:2}function f(a,b){return g(a.x,b.x)}function g(a,b){var c=e(a,1),d=e(b,1);return c!==d?c-d:0===c?b[1]-a[1]:1===c?a[0]-b[0]:2===c?a[1]-b[1]:b[0]-a[0]}return function(h){function i(a){for(var b=0,c=q.length,d=a[1],e=0;c>e;++e)for(var f,g=1,h=q[e],i=h.length,j=h[0];i>g;++g)f=h[g],j[1]<=d?f[1]>d&&X(j,f,a)>0&&++b:f[1]<=d&&X(j,f,a)<0&&--b,j=f;return 0!==b}function j(f,h,i,j){var k=0,l=0;if(null==f||(k=e(f,i))!==(l=e(h,i))||g(f,h)<0^i>0){do j.point(0===k||3===k?a:c,k>1?d:b);while((k=(k+i+4)%4)!==l)}else j.point(h[0],h[1])}function k(e,f){return e>=a&&c>=e&&f>=b&&d>=f}function l(a,b){k(a,b)&&h.point(a,b)}function m(){D.point=o,q&&q.push(r=[]),y=!0,x=!1,v=w=0/0}function n(){p&&(o(s,t),u&&x&&B.rejoin(),p.push(B.buffer())),D.point=l,x&&h.lineEnd()}function o(a,b){a=Math.max(-Ch,Math.min(Ch,a)),b=Math.max(-Ch,Math.min(Ch,b));var c=k(a,b);if(q&&r.push([a,b]),y)s=a,t=b,u=c,y=!1,c&&(h.lineStart(),h.point(a,b));else if(c&&x)h.point(a,b);else{var d={a:{x:v,y:w},b:{x:a,y:b}};C(d)?(x||(h.lineStart(),h.point(d.a.x,d.a.y)),h.point(d.b.x,d.b.y),c||h.lineEnd(),z=!1):c&&(h.lineStart(),h.point(a,b),z=!1)}v=a,w=b,x=c}var p,q,r,s,t,u,v,w,x,y,z,A=h,B=Hb(),C=Ob(a,b,c,d),D={point:l,lineStart:m,lineEnd:n,polygonStart:function(){h=B,p=[],q=[],z=!0},polygonEnd:function(){h=A,p=Wf.merge(p);var b=i([a,d]),c=z&&b,e=p.length;(c||e)&&(h.polygonStart(),c&&(h.lineStart(),j(null,null,1,h),h.lineEnd()),e&&Cb(p,f,b,j,h),h.polygonEnd()),p=q=r=null}};return D}}function Qb(a,b){function c(c,d){return c=a(c,d),b(c[0],c[1])}return a.invert&&b.invert&&(c.invert=function(c,d){return c=b.invert(c,d),c&&a.invert(c[0],c[1])}),c}function Rb(a){var b=0,c=zg/3,d=fc(a),e=d(b,c);return e.parallels=function(a){return arguments.length?d(b=a[0]*zg/180,c=a[1]*zg/180):[b/zg*180,c/zg*180]},e}function Sb(a,b){function c(a,b){var c=Math.sqrt(f-2*e*Math.sin(b))/e;return[c*Math.sin(a*=e),g-c*Math.cos(a)]}var d=Math.sin(a),e=(d+Math.sin(b))/2,f=1+d*(2*e-d),g=Math.sqrt(f)/e;return c.invert=function(a,b){var c=g-b;return[Math.atan2(a,c)/e,Z((f-(a*a+c*c)*e*e)/(2*e))]},c}function Tb(){function a(a,b){Eh+=e*a-d*b,d=a,e=b}var b,c,d,e;Jh.point=function(f,g){Jh.point=a,b=d=f,c=e=g},Jh.lineEnd=function(){a(b,c)}}function Ub(a,b){Fh>a&&(Fh=a),a>Hh&&(Hh=a),Gh>b&&(Gh=b),b>Ih&&(Ih=b)}function Vb(){function a(a,b){g.push("M",a,",",b,f)}function b(a,b){g.push("M",a,",",b),h.point=c}function c(a,b){g.push("L",a,",",b)}function d(){h.point=a}function e(){g.push("Z")}var f=Wb(4.5),g=[],h={point:a,lineStart:function(){h.point=b},lineEnd:d,polygonStart:function(){h.lineEnd=e},polygonEnd:function(){h.lineEnd=d,h.point=a},pointRadius:function(a){return f=Wb(a),h},result:function(){if(g.length){var a=g.join("");return g=[],a}}};return h}function Wb(a){return"m0,"+a+"a"+a+","+a+" 0 1,1 0,"+-2*a+"a"+a+","+a+" 0 1,1 0,"+2*a+"z"}function Xb(a,b){rh+=a,sh+=b,++th}function Yb(){function a(a,d){var e=a-b,f=d-c,g=Math.sqrt(e*e+f*f);uh+=g*(b+a)/2,vh+=g*(c+d)/2,wh+=g,Xb(b=a,c=d)}var b,c;Lh.point=function(d,e){Lh.point=a,Xb(b=d,c=e)}}function Zb(){Lh.point=Xb}function $b(){function a(a,b){var c=a-d,f=b-e,g=Math.sqrt(c*c+f*f);uh+=g*(d+a)/2,vh+=g*(e+b)/2,wh+=g,g=e*a-d*b,xh+=g*(d+a),yh+=g*(e+b),zh+=3*g,Xb(d=a,e=b)}var b,c,d,e;Lh.point=function(f,g){Lh.point=a,Xb(b=d=f,c=e=g)},Lh.lineEnd=function(){a(b,c)}}function _b(a){function b(b,c){a.moveTo(b,c),a.arc(b,c,g,0,Ag)}function c(b,c){a.moveTo(b,c),h.point=d}function d(b,c){a.lineTo(b,c)}function e(){h.point=b}function f(){a.closePath()}var g=4.5,h={point:b,lineStart:function(){h.point=c},lineEnd:e,polygonStart:function(){h.lineEnd=f},polygonEnd:function(){h.lineEnd=e,h.point=b},pointRadius:function(a){return g=a,h},result:p};return h}function ac(a){function b(a){return(h?d:c)(a)}function c(b){return dc(b,function(c,d){c=a(c,d),b.point(c[0],c[1])})}function d(b){function c(c,d){c=a(c,d),b.point(c[0],c[1])}function d(){t=0/0,y.point=f,b.lineStart()}function f(c,d){var f=ob([c,d]),g=a(c,d);e(t,u,s,v,w,x,t=g[0],u=g[1],s=c,v=f[0],w=f[1],x=f[2],h,b),b.point(t,u)}function g(){y.point=c,b.lineEnd()}function i(){d(),y.point=j,y.lineEnd=k}function j(a,b){f(l=a,m=b),n=t,o=u,p=v,q=w,r=x,y.point=f}function k(){e(t,u,s,v,w,x,n,o,l,p,q,r,h,b),y.lineEnd=g,g()}var l,m,n,o,p,q,r,s,t,u,v,w,x,y={point:c,lineStart:d,lineEnd:g,polygonStart:function(){b.polygonStart(),y.lineStart=i},polygonEnd:function(){b.polygonEnd(),y.lineStart=d}};return y}function e(b,c,d,h,i,j,k,l,m,n,o,p,q,r){var s=k-b,t=l-c,u=s*s+t*t;if(u>4*f&&q--){var v=h+n,w=i+o,x=j+p,y=Math.sqrt(v*v+w*w+x*x),z=Math.asin(x/=y),A=ig(ig(x)-1)f||ig((s*E+t*F)/u-.5)>.3||g>h*n+i*o+j*p)&&(e(b,c,d,h,i,j,C,D,A,v/=y,w/=y,x,q,r),r.point(C,D),e(C,D,A,v,w,x,k,l,m,n,o,p,q,r))}}var f=.5,g=Math.cos(30*Eg),h=16;return b.precision=function(a){return arguments.length?(h=(f=a*a)>0&&16,b):Math.sqrt(f)},b}function bc(a){var b=ac(function(b,c){return a([b*Fg,c*Fg])});return function(a){return gc(b(a))}}function cc(a){this.stream=a}function dc(a,b){return{point:b,sphere:function(){a.sphere()},lineStart:function(){a.lineStart()},lineEnd:function(){a.lineEnd()},polygonStart:function(){a.polygonStart()},polygonEnd:function(){a.polygonEnd()}}}function ec(a){return fc(function(){return a})()}function fc(a){function b(a){return a=h(a[0]*Eg,a[1]*Eg),[a[0]*m+i,j-a[1]*m]}function c(a){return a=h.invert((a[0]-i)/m,(j-a[1])/m),a&&[a[0]*Fg,a[1]*Fg]}function d(){h=Qb(g=jc(r,s,t),f);var a=f(p,q);return i=n-a[0]*m, -j=o+a[1]*m,e()}function e(){return k&&(k.valid=!1,k=null),b}var f,g,h,i,j,k,l=ac(function(a,b){return a=f(a,b),[a[0]*m+i,j-a[1]*m]}),m=150,n=480,o=250,p=0,q=0,r=0,s=0,t=0,u=Bh,v=Ba,w=null,x=null;return b.stream=function(a){return k&&(k.valid=!1),k=gc(u(g,l(v(a)))),k.valid=!0,k},b.clipAngle=function(a){return arguments.length?(u=null==a?(w=a,Bh):Nb((w=+a)*Eg),e()):w},b.clipExtent=function(a){return arguments.length?(x=a,v=a?Pb(a[0][0],a[0][1],a[1][0],a[1][1]):Ba,e()):x},b.scale=function(a){return arguments.length?(m=+a,d()):m},b.translate=function(a){return arguments.length?(n=+a[0],o=+a[1],d()):[n,o]},b.center=function(a){return arguments.length?(p=a[0]%360*Eg,q=a[1]%360*Eg,d()):[p*Fg,q*Fg]},b.rotate=function(a){return arguments.length?(r=a[0]%360*Eg,s=a[1]%360*Eg,t=a.length>2?a[2]%360*Eg:0,d()):[r*Fg,s*Fg,t*Fg]},Wf.rebind(b,l,"precision"),function(){return f=a.apply(this,arguments),b.invert=f.invert&&c,d()}}function gc(a){return dc(a,function(b,c){a.point(b*Eg,c*Eg)})}function hc(a,b){return[a,b]}function ic(a,b){return[a>zg?a-Ag:-zg>a?a+Ag:a,b]}function jc(a,b,c){return a?b||c?Qb(lc(a),mc(b,c)):lc(a):b||c?mc(b,c):ic}function kc(a){return function(b,c){return b+=a,[b>zg?b-Ag:-zg>b?b+Ag:b,c]}}function lc(a){var b=kc(a);return b.invert=kc(-a),b}function mc(a,b){function c(a,b){var c=Math.cos(b),h=Math.cos(a)*c,i=Math.sin(a)*c,j=Math.sin(b),k=j*d+h*e;return[Math.atan2(i*f-k*g,h*d-j*e),Z(k*f+i*g)]}var d=Math.cos(a),e=Math.sin(a),f=Math.cos(b),g=Math.sin(b);return c.invert=function(a,b){var c=Math.cos(b),h=Math.cos(a)*c,i=Math.sin(a)*c,j=Math.sin(b),k=j*f-i*g;return[Math.atan2(i*f+j*g,h*d+k*e),Z(k*d-h*e)]},c}function nc(a,b){var c=Math.cos(a),d=Math.sin(a);return function(e,f,g,h){var i=g*b;null!=e?(e=oc(c,e),f=oc(c,f),(g>0?f>e:e>f)&&(e+=g*Ag)):(e=a+g*Ag,f=a-.5*i);for(var j,k=e;g>0?k>f:f>k;k-=i)h.point((j=ub([c,-d*Math.cos(k),-d*Math.sin(k)]))[0],j[1])}}function oc(a,b){var c=ob(b);c[0]-=a,tb(c);var d=Y(-c[1]);return((-c[2]<0?-d:d)+2*Math.PI-Cg)%(2*Math.PI)}function pc(a,b,c){var d=Wf.range(a,b-Cg,c).concat(b);return function(a){return d.map(function(b){return[a,b]})}}function qc(a,b,c){var d=Wf.range(a,b-Cg,c).concat(b);return function(a){return d.map(function(b){return[b,a]})}}function rc(a){return a.source}function sc(a){return a.target}function tc(a,b,c,d){var e=Math.cos(b),f=Math.sin(b),g=Math.cos(d),h=Math.sin(d),i=e*Math.cos(a),j=e*Math.sin(a),k=g*Math.cos(c),l=g*Math.sin(c),m=2*Math.asin(Math.sqrt(ba(d-b)+e*g*ba(c-a))),n=1/Math.sin(m),o=m?function(a){var b=Math.sin(a*=m)*n,c=Math.sin(m-a)*n,d=c*i+b*k,e=c*j+b*l,g=c*f+b*h;return[Math.atan2(e,d)*Fg,Math.atan2(g,Math.sqrt(d*d+e*e))*Fg]}:function(){return[a*Fg,b*Fg]};return o.distance=m,o}function uc(){function a(a,e){var f=Math.sin(e*=Eg),g=Math.cos(e),h=ig((a*=Eg)-b),i=Math.cos(h);Mh+=Math.atan2(Math.sqrt((h=g*Math.sin(h))*h+(h=d*f-c*g*i)*h),c*f+d*g*i),b=a,c=f,d=g}var b,c,d;Nh.point=function(e,f){b=e*Eg,c=Math.sin(f*=Eg),d=Math.cos(f),Nh.point=a},Nh.lineEnd=function(){Nh.point=Nh.lineEnd=p}}function vc(a,b){function c(b,c){var d=Math.cos(b),e=Math.cos(c),f=a(d*e);return[f*e*Math.sin(b),f*Math.sin(c)]}return c.invert=function(a,c){var d=Math.sqrt(a*a+c*c),e=b(d),f=Math.sin(e),g=Math.cos(e);return[Math.atan2(a*f,d*g),Math.asin(d&&c*f/d)]},c}function wc(a,b){function c(a,b){g>0?-Bg+Cg>b&&(b=-Bg+Cg):b>Bg-Cg&&(b=Bg-Cg);var c=g/Math.pow(e(b),f);return[c*Math.sin(f*a),g-c*Math.cos(f*a)]}var d=Math.cos(a),e=function(a){return Math.tan(zg/4+a/2)},f=a===b?Math.sin(a):Math.log(d/Math.cos(b))/Math.log(e(b)/e(a)),g=d*Math.pow(e(a),f)/f;return f?(c.invert=function(a,b){var c=g-b,d=W(f)*Math.sqrt(a*a+c*c);return[Math.atan2(a,c)/f,2*Math.atan(Math.pow(g/d,1/f))-Bg]},c):yc}function xc(a,b){function c(a,b){var c=f-b;return[c*Math.sin(e*a),f-c*Math.cos(e*a)]}var d=Math.cos(a),e=a===b?Math.sin(a):(d-Math.cos(b))/(b-a),f=d/e+a;return ig(e)e;e++){for(;d>1&&X(a[c[d-2]],a[c[d-1]],a[e])<=0;)--d;c[d++]=e}return c.slice(0,d)}function Ec(a,b){return a[0]-b[0]||a[1]-b[1]}function Fc(a,b,c){return(c[0]-b[0])*(a[1]-b[1])<(c[1]-b[1])*(a[0]-b[0])}function Gc(a,b,c,d){var e=a[0],f=c[0],g=b[0]-e,h=d[0]-f,i=a[1],j=c[1],k=b[1]-i,l=d[1]-j,m=(h*(i-j)-l*(e-f))/(l*g-h*k);return[e+m*g,i+m*k]}function Hc(a){var b=a[0],c=a[a.length-1];return!(b[0]-c[0]||b[1]-c[1])}function Ic(){bd(this),this.edge=this.site=this.circle=null}function Jc(a){var b=Zh.pop()||new Ic;return b.site=a,b}function Kc(a){Uc(a),Wh.remove(a),Zh.push(a),bd(a)}function Lc(a){var b=a.circle,c=b.x,d=b.cy,e={x:c,y:d},f=a.P,g=a.N,h=[a];Kc(a);for(var i=f;i.circle&&ig(c-i.circle.x)k;++k)j=h[k],i=h[k-1],$c(j.edge,i.site,j.site,e);i=h[0],j=h[l-1],j.edge=Yc(i.site,j.site,null,e),Tc(i),Tc(j)}function Mc(a){for(var b,c,d,e,f=a.x,g=a.y,h=Wh._;h;)if(d=Nc(h,g)-f,d>Cg)h=h.L;else{if(e=f-Oc(h,g),!(e>Cg)){d>-Cg?(b=h.P,c=h):e>-Cg?(b=h,c=h.N):b=c=h;break}if(!h.R){b=h;break}h=h.R}var i=Jc(a);if(Wh.insert(b,i),b||c){if(b===c)return Uc(b),c=Jc(b.site),Wh.insert(i,c),i.edge=c.edge=Yc(b.site,i.site),Tc(b),void Tc(c);if(!c)return void(i.edge=Yc(b.site,i.site));Uc(b),Uc(c);var j=b.site,k=j.x,l=j.y,m=a.x-k,n=a.y-l,o=c.site,p=o.x-k,q=o.y-l,r=2*(m*q-n*p),s=m*m+n*n,t=p*p+q*q,u={x:(q*s-n*t)/r+k,y:(m*t-p*s)/r+l};$c(c.edge,j,o,u),i.edge=Yc(j,a,null,u),c.edge=Yc(a,o,null,u),Tc(b),Tc(c)}}function Nc(a,b){var c=a.site,d=c.x,e=c.y,f=e-b;if(!f)return d;var g=a.P;if(!g)return-(1/0);c=g.site;var h=c.x,i=c.y,j=i-b;if(!j)return h;var k=h-d,l=1/f-1/j,m=k/j;return l?(-m+Math.sqrt(m*m-2*l*(k*k/(-2*j)-i+j/2+e-f/2)))/l+d:(d+h)/2}function Oc(a,b){var c=a.N;if(c)return Nc(c,b);var d=a.site;return d.y===b?d.x:1/0}function Pc(a){this.site=a,this.edges=[]}function Qc(a){for(var b,c,d,e,f,g,h,i,j,k,l=a[0][0],m=a[1][0],n=a[0][1],o=a[1][1],p=Vh,q=p.length;q--;)if(f=p[q],f&&f.prepare())for(h=f.edges,i=h.length,g=0;i>g;)k=h[g].end(),d=k.x,e=k.y,j=h[++g%i].start(),b=j.x,c=j.y,(ig(d-b)>Cg||ig(e-c)>Cg)&&(h.splice(g,0,new _c(Zc(f.site,k,ig(d-l)Cg?{x:l,y:ig(b-l)Cg?{x:ig(c-o)Cg?{x:m,y:ig(b-m)Cg?{x:ig(c-n)=-Dg)){var n=i*i+j*j,o=k*k+l*l,p=(l*n-j*o)/m,q=(i*o-k*n)/m,l=q+h,r=$h.pop()||new Sc;r.arc=a,r.site=e,r.x=p+g,r.y=l+Math.sqrt(p*p+q*q),r.cy=l,a.circle=r;for(var s=null,t=Yh._;t;)if(r.yq||q>=h)return;if(m>o){if(f){if(f.y>=j)return}else f={x:q,y:i};c={x:q,y:j}}else{if(f){if(f.yd||d>1)if(m>o){if(f){if(f.y>=j)return}else f={x:(i-e)/d,y:i};c={x:(j-e)/d,y:j}}else{if(f){if(f.yn){if(f){if(f.x>=h)return}else f={x:g,y:d*g+e};c={x:h,y:d*h+e}}else{if(f){if(f.xf&&(e=b.substring(f,e),h[g]?h[g]+=e:h[++g]=e),(c=c[0])===(d=d[0])?h[g]?h[g]+=d:h[++g]=d:(h[++g]=null,i.push({i:g,x:od(c,d)})),f=bi.lastIndex;return fd;++d)h[(c=i[d]).i]=c.x(a);return h.join("")})}function qd(a,b){for(var c,d=Wf.interpolators.length;--d>=0&&!(c=Wf.interpolators[d](a,b)););return c}function rd(a,b){var c,d=[],e=[],f=a.length,g=b.length,h=Math.min(a.length,b.length);for(c=0;h>c;++c)d.push(qd(a[c],b[c]));for(;f>c;++c)e[c]=a[c];for(;g>c;++c)e[c]=b[c];return function(a){for(c=0;h>c;++c)e[c]=d[c](a);return e}}function sd(a){return function(b){return 0>=b?0:b>=1?1:a(b)}}function td(a){return function(b){return 1-a(1-b)}}function ud(a){return function(b){return.5*(.5>b?a(2*b):2-a(2-2*b))}}function vd(a){return a*a}function wd(a){return a*a*a}function xd(a){if(0>=a)return 0;if(a>=1)return 1;var b=a*a,c=b*a;return 4*(.5>a?c:3*(a-b)+c-.75)}function yd(a){return function(b){return Math.pow(b,a)}}function zd(a){return 1-Math.cos(a*Bg)}function Ad(a){return Math.pow(2,10*(a-1))}function Bd(a){return 1-Math.sqrt(1-a*a)}function Cd(a,b){var c;return arguments.length<2&&(b=.45),arguments.length?c=b/Ag*Math.asin(1/a):(a=1,c=b/4),function(d){return 1+a*Math.pow(2,-10*d)*Math.sin((d-c)*Ag/b)}}function Dd(a){return a||(a=1.70158),function(b){return b*b*((a+1)*b-a)}}function Ed(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}function Fd(a,b){a=Wf.hcl(a),b=Wf.hcl(b);var c=a.h,d=a.c,e=a.l,f=b.h-c,g=b.c-d,h=b.l-e;return isNaN(g)&&(g=0,d=isNaN(d)?b.c:d),isNaN(f)?(f=0,c=isNaN(c)?b.h:c):f>180?f-=360:-180>f&&(f+=360),function(a){return ia(c+f*a,d+g*a,e+h*a)+""}}function Gd(a,b){a=Wf.hsl(a),b=Wf.hsl(b);var c=a.h,d=a.s,e=a.l,f=b.h-c,g=b.s-d,h=b.l-e;return isNaN(g)&&(g=0,d=isNaN(d)?b.s:d),isNaN(f)?(f=0,c=isNaN(c)?b.h:c):f>180?f-=360:-180>f&&(f+=360),function(a){return fa(c+f*a,d+g*a,e+h*a)+""}}function Hd(a,b){a=Wf.lab(a),b=Wf.lab(b);var c=a.l,d=a.a,e=a.b,f=b.l-c,g=b.a-d,h=b.b-e;return function(a){return la(c+f*a,d+g*a,e+h*a)+""}}function Id(a,b){return b-=a,function(c){return Math.round(a+b*c)}}function Jd(a){var b=[a.a,a.b],c=[a.c,a.d],d=Ld(b),e=Kd(b,c),f=Ld(Md(c,b,-e))||0;b[0]*c[1]180?k+=360:k-j>180&&(j+=360),e.push({i:d.push(d.pop()+"rotate(",null,")")-2,x:od(j,k)})):k&&d.push(d.pop()+"rotate("+k+")"),l!=m?e.push({i:d.push(d.pop()+"skewX(",null,")")-2,x:od(l,m)}):m&&d.push(d.pop()+"skewX("+m+")"),n[0]!=o[0]||n[1]!=o[1]?(c=d.push(d.pop()+"scale(",null,",",null,")"),e.push({i:c-4,x:od(n[0],o[0])},{i:c-2,x:od(n[1],o[1])})):(1!=o[0]||1!=o[1])&&d.push(d.pop()+"scale("+o+")"),c=e.length,function(a){for(var b,f=-1;++f=0;)c.push(e[d])}function $d(a,b){for(var c=[a],d=[];null!=(a=c.pop());)if(d.push(a),(f=a.children)&&(e=f.length))for(var e,f,g=-1;++gc;++c)(b=a[c][1])>e&&(d=c,e=b);return d}function je(a){return a.reduce(ke,0)}function ke(a,b){return a+b[1]}function le(a,b){return me(a,Math.ceil(Math.log(b.length)/Math.LN2+1))}function me(a,b){for(var c=-1,d=+a[0],e=(a[1]-d)/b,f=[];++c<=b;)f[c]=e*c+d;return f}function ne(a){return[Wf.min(a),Wf.max(a)]}function oe(a,b){return a.value-b.value}function pe(a,b){var c=a._pack_next;a._pack_next=b,b._pack_prev=a,b._pack_next=c,c._pack_prev=b}function qe(a,b){a._pack_next=b,b._pack_prev=a}function re(a,b){var c=b.x-a.x,d=b.y-a.y,e=a.r+b.r;return.999*e*e>c*c+d*d}function se(a){function b(a){k=Math.min(a.x-a.r,k),l=Math.max(a.x+a.r,l),m=Math.min(a.y-a.r,m),n=Math.max(a.y+a.r,n)}if((c=a.children)&&(j=c.length)){var c,d,e,f,g,h,i,j,k=1/0,l=-(1/0),m=1/0,n=-(1/0);if(c.forEach(te),d=c[0],d.x=-d.r,d.y=0,b(d),j>1&&(e=c[1],e.x=e.r,e.y=0,b(e),j>2))for(f=c[2],we(d,e,f),b(f),pe(d,f),d._pack_prev=f,pe(f,e),e=d._pack_next,g=3;j>g;g++){we(d,e,f=c[g]);var o=0,p=1,q=1;for(h=e._pack_next;h!==e;h=h._pack_next,p++)if(re(h,f)){o=1;break}if(1==o)for(i=d._pack_prev;i!==h._pack_prev&&!re(i,f);i=i._pack_prev,q++);o?(q>p||p==q&&e.rg;g++)f=c[g],f.x-=r,f.y-=s,t=Math.max(t,f.r+Math.sqrt(f.x*f.x+f.y*f.y));a.r=t,c.forEach(ue)}}function te(a){a._pack_next=a._pack_prev=a}function ue(a){delete a._pack_next,delete a._pack_prev}function ve(a,b,c,d){var e=a.children;if(a.x=b+=d*a.x,a.y=c+=d*a.y,a.r*=d,e)for(var f=-1,g=e.length;++f=0;)b=e[f],b.z+=c,b.m+=c,c+=b.s+(d+=b.c)}function Ce(a,b,c){return a.a.parent===b.parent?a.a:c}function De(a){return 1+Wf.max(a,function(a){return a.y})}function Ee(a){return a.reduce(function(a,b){return a+b.x},0)/a.length}function Fe(a){var b=a.children;return b&&b.length?Fe(b[0]):a}function Ge(a){var b,c=a.children;return c&&(b=c.length)?Ge(c[b-1]):a}function He(a){return{x:a.x,y:a.y,dx:a.dx,dy:a.dy}}function Ie(a,b){var c=a.x+b[3],d=a.y+b[0],e=a.dx-b[1]-b[3],f=a.dy-b[0]-b[2];return 0>e&&(c+=e/2,e=0),0>f&&(d+=f/2,f=0),{x:c,y:d,dx:e,dy:f}}function Je(a){var b=a[0],c=a[a.length-1];return c>b?[b,c]:[c,b]}function Ke(a){return a.rangeExtent?a.rangeExtent():Je(a.range())}function Le(a,b,c,d){var e=c(a[0],a[1]),f=d(b[0],b[1]);return function(a){return f(e(a))}}function Me(a,b){var c,d=0,e=a.length-1,f=a[d],g=a[e];return f>g&&(c=d,d=e,e=c,c=f,f=g,g=c),a[d]=b.floor(f),a[e]=b.ceil(g),a}function Ne(a){return a?{floor:function(b){return Math.floor(b/a)*a},ceil:function(b){return Math.ceil(b/a)*a}}:mi}function Oe(a,b,c,d){var e=[],f=[],g=0,h=Math.min(a.length,b.length)-1;for(a[h]2?Oe:Le,i=d?Pd:Od;return g=e(a,b,i,c),h=e(b,a,i,qd),f}function f(a){return g(a)}var g,h;return f.invert=function(a){return h(a)},f.domain=function(b){return arguments.length?(a=b.map(Number),e()):a},f.range=function(a){return arguments.length?(b=a,e()):b},f.rangeRound=function(a){return f.range(a).interpolate(Id)},f.clamp=function(a){return arguments.length?(d=a,e()):d},f.interpolate=function(a){return arguments.length?(c=a,e()):c},f.ticks=function(b){return Te(a,b)},f.tickFormat=function(b,c){return Ue(a,b,c)},f.nice=function(b){return Re(a,b),e()},f.copy=function(){return Pe(a,b,c,d)},e()}function Qe(a,b){return Wf.rebind(a,b,"range","rangeRound","interpolate","clamp")}function Re(a,b){return Me(a,Ne(Se(a,b)[2]))}function Se(a,b){null==b&&(b=10);var c=Je(a),d=c[1]-c[0],e=Math.pow(10,Math.floor(Math.log(d/b)/Math.LN10)),f=b/d*e;return.15>=f?e*=10:.35>=f?e*=5:.75>=f&&(e*=2),c[0]=Math.ceil(c[0]/e)*e,c[1]=Math.floor(c[1]/e)*e+.5*e,c[2]=e,c}function Te(a,b){return Wf.range.apply(Wf,Se(a,b))}function Ue(a,b,c){var d=Se(a,b);if(c){var e=ah.exec(c);if(e.shift(),"s"===e[8]){var f=Wf.formatPrefix(Math.max(ig(d[0]),ig(d[1])));return e[7]||(e[7]="."+Ve(f.scale(d[2]))),e[8]="f",c=Wf.format(e.join("")),function(a){return c(f.scale(a))+f.symbol}}e[7]||(e[7]="."+We(e[8],d)),c=e.join("")}else c=",."+Ve(d[2])+"f";return Wf.format(c)}function Ve(a){return-Math.floor(Math.log(a)/Math.LN10+.01)}function We(a,b){var c=Ve(b[2]);return a in ni?Math.abs(c-Ve(Math.max(ig(b[0]),ig(b[1]))))+ +("e"!==a):c-2*("%"===a)}function Xe(a,b,c,d){function e(a){return(c?Math.log(0>a?0:a):-Math.log(a>0?0:-a))/Math.log(b)}function f(a){return c?Math.pow(b,a):-Math.pow(b,-a)}function g(b){return a(e(b))}return g.invert=function(b){return f(a.invert(b))},g.domain=function(b){return arguments.length?(c=b[0]>=0,a.domain((d=b.map(Number)).map(e)),g):d},g.base=function(c){return arguments.length?(b=+c,a.domain(d.map(e)),g):b},g.nice=function(){var b=Me(d.map(e),c?Math:pi);return a.domain(b),d=b.map(f),g},g.ticks=function(){var a=Je(d),g=[],h=a[0],i=a[1],j=Math.floor(e(h)),k=Math.ceil(e(i)),l=b%1?2:b;if(isFinite(k-j)){if(c){for(;k>j;j++)for(var m=1;l>m;m++)g.push(f(j)*m);g.push(f(j))}else for(g.push(f(j));j++0;m--)g.push(f(j)*m);for(j=0;g[j]i;k--);g=g.slice(j,k)}return g},g.tickFormat=function(a,b){if(!arguments.length)return oi;arguments.length<2?b=oi:"function"!=typeof b&&(b=Wf.format(b));var d,h=Math.max(.1,a/g.ticks().length),i=c?(d=1e-12,Math.ceil):(d=-1e-12,Math.floor);return function(a){return a/f(i(e(a)+d))<=h?b(a):""}},g.copy=function(){return Xe(a.copy(),b,c,d)},Qe(g,a)}function Ye(a,b,c){function d(b){return a(e(b))}var e=Ze(b),f=Ze(1/b);return d.invert=function(b){return f(a.invert(b))},d.domain=function(b){return arguments.length?(a.domain((c=b.map(Number)).map(e)),d):c},d.ticks=function(a){return Te(c,a)},d.tickFormat=function(a,b){return Ue(c,a,b)},d.nice=function(a){return d.domain(Re(c,a))},d.exponent=function(g){return arguments.length?(e=Ze(b=g),f=Ze(1/b),a.domain(c.map(e)),d):b},d.copy=function(){return Ye(a.copy(),b,c)},Qe(d,a)}function Ze(a){return function(b){return 0>b?-Math.pow(-b,a):Math.pow(b,a)}}function $e(a,b){function c(c){return f[((e.get(c)||("range"===b.t?e.set(c,a.push(c)):0/0))-1)%f.length]}function d(b,c){return Wf.range(a.length).map(function(a){return b+c*a})}var e,f,h;return c.domain=function(d){if(!arguments.length)return a;a=[],e=new g;for(var f,h=-1,i=d.length;++ha?[0/0,0/0]:[a>0?g[a-1]:c[0],ab?0/0:b/f+a,[b,b+1/f]},d.copy=function(){return af(a,b,c)},e()}function bf(a,b){function c(c){return c>=c?b[Wf.bisect(a,c)]:void 0}return c.domain=function(b){return arguments.length?(a=b,c):a},c.range=function(a){return arguments.length?(b=a,c):b},c.invertExtent=function(c){return c=b.indexOf(c),[a[c-1],a[c]]},c.copy=function(){return bf(a,b)},c}function cf(a){function b(a){return+a}return b.invert=b,b.domain=b.range=function(c){return arguments.length?(a=c.map(b),b):a},b.ticks=function(b){return Te(a,b)},b.tickFormat=function(b,c){return Ue(a,b,c)},b.copy=function(){return cf(a)},b}function df(a){return a.innerRadius}function ef(a){return a.outerRadius}function ff(a){return a.startAngle}function gf(a){return a.endAngle}function hf(a){function b(b){function g(){j.push("M",f(a(k),h))}for(var i,j=[],k=[],l=-1,m=b.length,n=Aa(c),o=Aa(d);++l1&&e.push("H",d[0]),e.join("")}function mf(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];++b1){h=b[1],f=a[i],i++,d+="C"+(e[0]+g[0])+","+(e[1]+g[1])+","+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1];for(var j=2;j9&&(e=3*b/Math.sqrt(e),g[h]=e*c,g[h+1]=e*d));for(h=-1;++h<=i;)e=(a[Math.min(i,h+1)][0]-a[Math.max(0,h-1)][0])/(6*(1+g[h]*g[h])),f.push([e||0,g[h]*e||0]);return f}function Cf(a){return a.length<3?jf(a):a[0]+rf(a,Bf(a))}function Df(a){for(var b,c,d,e=-1,f=a.length;++ec?j():(e.active=c,f.event&&f.event.start.call(a,k,b),f.tween.forEach(function(c,d){(d=d.call(a,k,b))&&p.push(d)}),void Wf.timer(function(){return o.c=i(d||1)?Bb:i,1},0,h))}function i(d){if(e.active!==c)return j();for(var g=d/n,h=l(g),i=p.length;i>0;)p[--i].call(a,h);return g>=1?(f.event&&f.event.end.call(a,k,b),j()):void 0}function j(){return--e.count?delete e[c]:delete a.__transition__,1}var k=a.__data__,l=f.ease,m=f.delay,n=f.duration,o=Zg,p=[];return o.t=m+h,d>=m?g(d-m):void(o.c=g)},0,h)}}function Pf(a,b){a.attr("transform",function(a){return"translate("+b(a)+",0)"})}function Qf(a,b){a.attr("transform",function(a){return"translate(0,"+b(a)+")"})}function Rf(a){return a.toISOString()}function Sf(a,b,c){function d(b){return a(b)}function e(a,c){var d=a[1]-a[0],e=d/c,f=Wf.bisect(Oi,e);return f==Oi.length?[b.year,Se(a.map(function(a){return a/31536e6}),c)[2]]:f?b[e/Oi[f-1]1?{floor:function(b){for(;c(b=a.floor(b));)b=Tf(b-1);return b},ceil:function(b){for(;c(b=a.ceil(b));)b=Tf(+b+1);return b}}:a))},d.ticks=function(a,b){var c=Je(d.domain()),f=null==a?e(c,10):"number"==typeof a?e(c,a):!a.range&&[{range:a},b];return f&&(a=f[0],b=f[1]),a.range(c[0],Tf(+c[1]+1),1>b?1:b)},d.tickFormat=function(){return c},d.copy=function(){return Sf(a.copy(),b,c)},Qe(d,a)}function Tf(a){return new Date(a)}function Uf(a){return JSON.parse(a.responseText)}function Vf(a){var b=Zf.createRange();return b.selectNode(Zf.body),b.createContextualFragment(a.responseText)}var Wf={version:"3.4.8"};Date.now||(Date.now=function(){return+new Date});var Xf=[].slice,Yf=function(a){return Xf.call(a)},Zf=document,$f=Zf.documentElement,_f=window;try{Yf($f.childNodes)[0].nodeType}catch(ag){Yf=function(a){for(var b=a.length,c=new Array(b);b--;)c[b]=a[b];return c}}try{Zf.createElement("div").style.setProperty("opacity",0,"")}catch(bg){var cg=_f.Element.prototype,dg=cg.setAttribute,eg=cg.setAttributeNS,fg=_f.CSSStyleDeclaration.prototype,gg=fg.setProperty;cg.setAttribute=function(a,b){dg.call(this,a,b+"")},cg.setAttributeNS=function(a,b,c){eg.call(this,a,b,c+"")},fg.setProperty=function(a,b,c){gg.call(this,a,b+"",c)}}Wf.ascending=a,Wf.descending=function(a,b){return a>b?-1:b>a?1:b>=a?0:0/0},Wf.min=function(a,b){var c,d,e=-1,f=a.length;if(1===arguments.length){for(;++e=c);)c=void 0;for(;++ed&&(c=d)}else{for(;++e=c);)c=void 0;for(;++ed&&(c=d)}return c},Wf.max=function(a,b){var c,d,e=-1,f=a.length;if(1===arguments.length){for(;++e=c);)c=void 0;for(;++ec&&(c=d)}else{for(;++e=c);)c=void 0;for(;++ec&&(c=d)}return c},Wf.extent=function(a,b){var c,d,e,f=-1,g=a.length;if(1===arguments.length){for(;++f=c);)c=e=void 0;for(;++fd&&(c=d),d>e&&(e=d))}else{for(;++f=c);)c=void 0;for(;++fd&&(c=d),d>e&&(e=d))}return[c,e]},Wf.sum=function(a,b){var c,d=0,e=a.length,f=-1;if(1===arguments.length)for(;++f1&&(c=c.map(d)),c=c.filter(b),c.length?Wf.quantile(c.sort(a),.5):void 0};var hg=c(a);Wf.bisectLeft=hg.left,Wf.bisect=Wf.bisectRight=hg.right,Wf.bisector=function(b){return c(1===b.length?function(c,d){return a(b(c),d)}:b)},Wf.shuffle=function(a){for(var b,c,d=a.length;d;)c=Math.random()*d--|0,b=a[d],a[d]=a[c],a[c]=b;return a},Wf.permute=function(a,b){for(var c=b.length,d=new Array(c);c--;)d[c]=a[b[c]];return d},Wf.pairs=function(a){for(var b,c=0,d=a.length-1,e=a[0],f=new Array(0>d?0:d);d>c;)f[c]=[b=e,e=a[++c]];return f},Wf.zip=function(){if(!(e=arguments.length))return[];for(var a=-1,b=Wf.min(arguments,d),c=new Array(b);++a=0;)for(d=a[e],b=d.length;--b>=0;)c[--g]=d[b];return c};var ig=Math.abs;Wf.range=function(a,b,c){if(arguments.length<3&&(c=1,arguments.length<2&&(b=a,a=0)),(b-a)/c===1/0)throw new Error("infinite range");var d,f=[],g=e(ig(c)),h=-1;if(a*=g,b*=g,c*=g,0>c)for(;(d=a+c*++h)>b;)f.push(d/g);else for(;(d=a+c*++h)=f.length)return d?d.call(e,h):c?h.sort(c):h;for(var j,k,l,m,n=-1,o=h.length,p=f[i++],q=new g;++n=f.length)return a;var d=[],e=h[c++];return a.forEach(function(a,e){d.push({key:a,values:b(e,c)})}),e?d.sort(function(a,b){return e(a.key,b.key)}):d}var c,d,e={},f=[],h=[];return e.map=function(b,c){return a(c,b,0)},e.entries=function(c){return b(a(Wf.map,c,0),0)},e.key=function(a){return f.push(a),e},e.sortKeys=function(a){return h[f.length-1]=a,e},e.sortValues=function(a){return c=a,e},e.rollup=function(a){return d=a,e},e},Wf.set=function(a){var b=new m;if(a)for(var c=0,d=a.length;d>c;++c)b.add(a[c]);return b},f(m,{has:h,add:function(a){return this[jg+a]=!0,a},remove:function(a){return a=jg+a,a in this&&delete this[a]},values:j,size:k,empty:l,forEach:function(a){for(var b in this)b.charCodeAt(0)===kg&&a.call(this,b.substring(1))}}),Wf.behavior={},Wf.rebind=function(a,b){for(var c,d=1,e=arguments.length;++d=0&&(d=a.substring(c+1),a=a.substring(0,c)),a)return arguments.length<2?this[a].on(d):this[a].on(d,b);if(2===arguments.length){if(null==b)for(a in this)this.hasOwnProperty(a)&&this[a].on(d,null);return this}},Wf.event=null,Wf.requote=function(a){return a.replace(mg,"\\$&")};var mg=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ng={}.__proto__?function(a,b){a.__proto__=b}:function(a,b){for(var c in b)a[c]=b[c]},og=function(a,b){return b.querySelector(a)},pg=function(a,b){return b.querySelectorAll(a)},qg=$f[o($f,"matchesSelector")],rg=function(a,b){return qg.call(a,b)};"function"==typeof Sizzle&&(og=function(a,b){return Sizzle(a,b)[0]||null},pg=Sizzle,rg=Sizzle.matchesSelector),Wf.selection=function(){return vg};var sg=Wf.selection.prototype=[];sg.select=function(a){var b,c,d,e,f=[];a=w(a);for(var g=-1,h=this.length;++g=0&&(c=a.substring(0,b),a=a.substring(b+1)),tg.hasOwnProperty(c)?{space:tg[c],local:a}:a}},sg.attr=function(a,b){if(arguments.length<2){if("string"==typeof a){var c=this.node();return a=Wf.ns.qualify(a),a.local?c.getAttributeNS(a.space,a.local):c.getAttribute(a)}for(b in a)this.each(y(b,a[b]));return this}return this.each(y(a,b))},sg.classed=function(a,b){if(arguments.length<2){if("string"==typeof a){var c=this.node(),d=(a=B(a)).length,e=-1;if(b=c.classList){for(;++ed){if("string"!=typeof a){2>d&&(b="");for(c in a)this.each(E(c,a[c],b));return this}if(2>d)return _f.getComputedStyle(this.node(),null).getPropertyValue(a);c=""}return this.each(E(a,b,c))},sg.property=function(a,b){if(arguments.length<2){if("string"==typeof a)return this.node()[a];for(b in a)this.each(F(b,a[b]));return this}return this.each(F(a,b))},sg.text=function(a){return arguments.length?this.each("function"==typeof a?function(){var b=a.apply(this,arguments);this.textContent=null==b?"":b}:null==a?function(){this.textContent=""}:function(){this.textContent=a}):this.node().textContent},sg.html=function(a){return arguments.length?this.each("function"==typeof a?function(){var b=a.apply(this,arguments);this.innerHTML=null==b?"":b}:null==a?function(){this.innerHTML=""}:function(){this.innerHTML=a}):this.node().innerHTML},sg.append=function(a){return a=G(a),this.select(function(){return this.appendChild(a.apply(this,arguments))})},sg.insert=function(a,b){return a=G(a),b=w(b),this.select(function(){return this.insertBefore(a.apply(this,arguments),b.apply(this,arguments)||null)})},sg.remove=function(){return this.each(function(){var a=this.parentNode;a&&a.removeChild(this)})},sg.data=function(a,b){function c(a,c){var d,e,f,h=a.length,l=c.length,m=Math.min(h,l),n=new Array(l),o=new Array(l),p=new Array(h);if(b){var q,r=new g,s=new g,t=[];for(d=-1;++dd;++d)o[d]=H(c[d]);for(;h>d;++d)p[d]=a[d]}o.update=n,o.parentNode=n.parentNode=p.parentNode=a.parentNode,i.push(o),j.push(n),k.push(p)}var d,e,f=-1,h=this.length;if(!arguments.length){for(a=new Array(h=(d=this[0]).length);++ff;f++){e.push(b=[]),b.parentNode=(c=this[f]).parentNode;for(var h=0,i=c.length;i>h;h++)(d=c[h])&&a.call(d,d.__data__,h,f)&&b.push(d)}return v(e)},sg.order=function(){for(var a=-1,b=this.length;++a=0;)(c=d[e])&&(f&&f!==c.nextSibling&&f.parentNode.insertBefore(c,f),f=c);return this},sg.sort=function(a){a=J.apply(this,arguments);for(var b=-1,c=this.length;++ba;a++)for(var c=this[a],d=0,e=c.length;e>d;d++){var f=c[d];if(f)return f}return null},sg.size=function(){var a=0;return this.each(function(){++a}),a};var ug=[];Wf.selection.enter=L,Wf.selection.enter.prototype=ug,ug.append=sg.append,ug.empty=sg.empty,ug.node=sg.node,ug.call=sg.call,ug.size=sg.size,ug.select=function(a){for(var b,c,d,e,f,g=[],h=-1,i=this.length;++hd){if("string"!=typeof a){2>d&&(b=!1);for(c in a)this.each(O(c,a[c],b));return this}if(2>d)return(d=this.node()["__on"+a])&&d._;c=!1}return this.each(O(a,b,c))};var wg=Wf.map({mouseenter:"mouseover",mouseleave:"mouseout"});wg.forEach(function(a){"on"+a in Zf&&wg.remove(a)});var xg="onselectstart"in Zf?null:o($f.style,"userSelect"),yg=0;Wf.mouse=function(a){return S(a,t())},Wf.touches=function(a,b){return arguments.length<2&&(b=t().touches),b?Yf(b).map(function(b){var c=S(a,b);return c.identifier=b.identifier,c}):[]},Wf.behavior.drag=function(){function a(){this.on("mousedown.drag",e).on("touchstart.drag",f)}function b(a,b,e,f,g){return function(){function h(){var a,c,d=b(m,p);d&&(a=d[0]-t[0],c=d[1]-t[1],o|=a|c,t=d,n({type:"drag",x:d[0]+j[0],y:d[1]+j[1],dx:a,dy:c}))}function i(){b(m,p)&&(r.on(f+q,null).on(g+q,null),s(o&&Wf.event.target===l),n({type:"dragend"}))}var j,k=this,l=Wf.event.target,m=k.parentNode,n=c.of(k,arguments),o=0,p=a(),q=".drag"+(null==p?"":"-"+p),r=Wf.select(e()).on(f+q,h).on(g+q,i),s=R(),t=b(m,p);d?(j=d.apply(k,arguments),j=[j.x-t[0],j.y-t[1]]):j=[0,0],n({type:"dragstart"})}}var c=u(a,"drag","dragstart","dragend"),d=null,e=b(p,Wf.mouse,V,"mousemove","mouseup"),f=b(T,Wf.touch,U,"touchmove","touchend");return a.origin=function(b){return arguments.length?(d=b,a):d},Wf.rebind(a,c,"on")};var zg=Math.PI,Ag=2*zg,Bg=zg/2,Cg=1e-6,Dg=Cg*Cg,Eg=zg/180,Fg=180/zg,Gg=Math.SQRT2,Hg=2,Ig=4;Wf.interpolateZoom=function(a,b){function c(a){var b=a*s;if(r){var c=_(p),g=f/(Hg*m)*(c*aa(Gg*b+p)-$(p));return[d+g*j,e+g*k,f*c/_(Gg*b+p)]}return[d+a*j,e+a*k,f*Math.exp(Gg*b)]}var d=a[0],e=a[1],f=a[2],g=b[0],h=b[1],i=b[2],j=g-d,k=h-e,l=j*j+k*k,m=Math.sqrt(l),n=(i*i-f*f+Ig*l)/(2*f*Hg*m),o=(i*i-f*f-Ig*l)/(2*i*Hg*m),p=Math.log(Math.sqrt(n*n+1)-n),q=Math.log(Math.sqrt(o*o+1)-o),r=q-p,s=(r||Math.log(i/f))/Gg;return c.duration=1e3*s,c},Wf.behavior.zoom=function(){function a(a){a.on(B,j).on(Lg+".zoom",l).on(C,m).on("dblclick.zoom",n).on(E,k)}function b(a){return[(a[0]-y.x)/y.k,(a[1]-y.y)/y.k]}function c(a){return[a[0]*y.k+y.x,a[1]*y.k+y.y]}function d(a){y.k=Math.max(A[0],Math.min(A[1],a))}function e(a,b){b=c(b),y.x+=a[0]-b[0],y.y+=a[1]-b[1]}function f(){v&&v.domain(t.range().map(function(a){return(a-y.x)/y.k}).map(t.invert)),x&&x.domain(w.range().map(function(a){return(a-y.y)/y.k}).map(w.invert))}function g(a){a({type:"zoomstart"})}function h(a){f(),a({type:"zoom",scale:y.k,translate:[y.x,y.y]})}function i(a){a({type:"zoomend"})}function j(){function a(){k=1,e(Wf.mouse(d),n),h(j)}function c(){l.on(C,_f===d?m:null).on(D,null),o(k&&Wf.event.target===f),i(j)}var d=this,f=Wf.event.target,j=F.of(d,arguments),k=0,l=Wf.select(_f).on(C,a).on(D,c),n=b(Wf.mouse(d)),o=R();N.call(d),g(j)}function k(){function a(){var a=Wf.touches(n);return m=y.k,a.forEach(function(a){a.identifier in p&&(p[a.identifier]=b(a))}),a}function c(){var b=Wf.event.target;Wf.select(b).on(u,f).on(v,l),w.push(b);for(var c=Wf.event.changedTouches,g=0,i=c.length;i>g;++g)p[c[g].identifier]=null;var j=a(),k=Date.now();if(1===j.length){if(500>k-r){var m=j[0],n=p[m.identifier];d(2*y.k),e(m,n),s(),h(o)}r=k}else if(j.length>1){var m=j[0],t=j[1],x=m[0]-t[0],z=m[1]-t[1];q=x*x+z*z}}function f(){for(var a,b,c,f,g=Wf.touches(n),i=0,j=g.length;j>i;++i,f=null)if(c=g[i],f=p[c.identifier]){if(b)break;a=c,b=f}if(f){var k=(k=c[0]-a[0])*k+(k=c[1]-a[1])*k,l=q&&Math.sqrt(k/q);a=[(a[0]+c[0])/2,(a[1]+c[1])/2],b=[(b[0]+f[0])/2,(b[1]+f[1])/2],d(l*m)}r=null,e(a,b),h(o)}function l(){if(Wf.event.touches.length){for(var b=Wf.event.changedTouches,c=0,d=b.length;d>c;++c)delete p[b[c].identifier];for(var e in p)return void a()}Wf.selectAll(w).on(t,null),x.on(B,j).on(E,k),z(),i(o)}var m,n=this,o=F.of(n,arguments),p={},q=0,t=".zoom-"+Wf.event.changedTouches[0].identifier,u="touchmove"+t,v="touchend"+t,w=[],x=Wf.select(n).on(B,null).on(E,c),z=R();N.call(n),c(),g(o)}function l(){var a=F.of(this,arguments);q?clearTimeout(q):(N.call(this),g(a)),q=setTimeout(function(){q=null,i(a)},50),s();var c=p||Wf.mouse(this);o||(o=b(c)),d(Math.pow(2,.002*Jg())*y.k),e(c,o),h(a)}function m(){o=null}function n(){var a=F.of(this,arguments),c=Wf.mouse(this),f=b(c),j=Math.log(y.k)/Math.LN2;g(a),d(Math.pow(2,Wf.event.shiftKey?Math.ceil(j)-1:Math.floor(j)+1)),e(c,f),h(a),i(a)}var o,p,q,r,t,v,w,x,y={x:0,y:0,k:1},z=[960,500],A=Kg,B="mousedown.zoom",C="mousemove.zoom",D="mouseup.zoom",E="touchstart.zoom",F=u(a,"zoomstart","zoom","zoomend");return a.event=function(a){a.each(function(){var a=F.of(this,arguments),b=y;Bi?Wf.select(this).transition().each("start.zoom",function(){y=this.__chart__||{x:0,y:0,k:1},g(a)}).tween("zoom:zoom",function(){var c=z[0],d=z[1],e=c/2,f=d/2,g=Wf.interpolateZoom([(e-y.x)/y.k,(f-y.y)/y.k,c/y.k],[(e-b.x)/b.k,(f-b.y)/b.k,c/b.k]);return function(b){var d=g(b),i=c/d[2];this.__chart__=y={x:e-d[0]*i,y:f-d[1]*i,k:i},h(a)}}).each("end.zoom",function(){i(a)}):(this.__chart__=y,g(a),h(a),i(a))})},a.translate=function(b){return arguments.length?(y={x:+b[0],y:+b[1],k:y.k},f(),a):[y.x,y.y]},a.scale=function(b){return arguments.length?(y={x:y.x,y:y.y,k:+b},f(),a):y.k},a.scaleExtent=function(b){return arguments.length?(A=null==b?Kg:[+b[0],+b[1]],a):A},a.center=function(b){return arguments.length?(p=b&&[+b[0],+b[1]],a):p},a.size=function(b){return arguments.length?(z=b&&[+b[0],+b[1]],a):z},a.x=function(b){return arguments.length?(v=b,t=b.copy(),y={x:0,y:0,k:1},a):v},a.y=function(b){return arguments.length?(x=b,w=b.copy(),y={x:0,y:0,k:1},a):x},Wf.rebind(a,F,"on")};var Jg,Kg=[0,1/0],Lg="onwheel"in Zf?(Jg=function(){return-Wf.event.deltaY*(Wf.event.deltaMode?120:1)},"wheel"):"onmousewheel"in Zf?(Jg=function(){return Wf.event.wheelDelta},"mousewheel"):(Jg=function(){return-Wf.event.detail},"MozMousePixelScroll");ca.prototype.toString=function(){return this.rgb()+""},Wf.hsl=function(a,b,c){return 1===arguments.length?a instanceof ea?da(a.h,a.s,a.l):va(""+a,wa,da):da(+a,+b,+c)};var Mg=ea.prototype=new ca;Mg.brighter=function(a){return a=Math.pow(.7,arguments.length?a:1),da(this.h,this.s,this.l/a)},Mg.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),da(this.h,this.s,a*this.l)},Mg.rgb=function(){return fa(this.h,this.s,this.l)},Wf.hcl=function(a,b,c){return 1===arguments.length?a instanceof ha?ga(a.h,a.c,a.l):a instanceof ka?ma(a.l,a.a,a.b):ma((a=xa((a=Wf.rgb(a)).r,a.g,a.b)).l,a.a,a.b):ga(+a,+b,+c)};var Ng=ha.prototype=new ca;Ng.brighter=function(a){return ga(this.h,this.c,Math.min(100,this.l+Og*(arguments.length?a:1)))},Ng.darker=function(a){return ga(this.h,this.c,Math.max(0,this.l-Og*(arguments.length?a:1)))},Ng.rgb=function(){return ia(this.h,this.c,this.l).rgb()},Wf.lab=function(a,b,c){return 1===arguments.length?a instanceof ka?ja(a.l,a.a,a.b):a instanceof ha?ia(a.l,a.c,a.h):xa((a=Wf.rgb(a)).r,a.g,a.b):ja(+a,+b,+c)};var Og=18,Pg=.95047,Qg=1,Rg=1.08883,Sg=ka.prototype=new ca;Sg.brighter=function(a){return ja(Math.min(100,this.l+Og*(arguments.length?a:1)),this.a,this.b)},Sg.darker=function(a){return ja(Math.max(0,this.l-Og*(arguments.length?a:1)),this.a,this.b)},Sg.rgb=function(){return la(this.l,this.a,this.b)},Wf.rgb=function(a,b,c){return 1===arguments.length?a instanceof ta?sa(a.r,a.g,a.b):va(""+a,sa,fa):sa(~~a,~~b,~~c)};var Tg=ta.prototype=new ca;Tg.brighter=function(a){a=Math.pow(.7,arguments.length?a:1);var b=this.r,c=this.g,d=this.b,e=30;return b||c||d?(b&&e>b&&(b=e),c&&e>c&&(c=e),d&&e>d&&(d=e),sa(Math.min(255,~~(b/a)),Math.min(255,~~(c/a)),Math.min(255,~~(d/a)))):sa(e,e,e)},Tg.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),sa(~~(a*this.r),~~(a*this.g),~~(a*this.b))},Tg.hsl=function(){return wa(this.r,this.g,this.b)},Tg.toString=function(){return"#"+ua(this.r)+ua(this.g)+ua(this.b)};var Ug=Wf.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Ug.forEach(function(a,b){Ug.set(a,qa(b))}),Wf.functor=Aa,Wf.xhr=Ca(Ba),Wf.dsv=function(a,b){function c(a,c,f){arguments.length<3&&(f=c,c=null);var g=Da(a,b,null==c?d:e(c),f);return g.row=function(a){return arguments.length?g.response(null==(c=a)?d:e(a)):c},g}function d(a){return c.parse(a.responseText)}function e(a){return function(b){return c.parse(b.responseText,a)}}function f(b){return b.map(g).join(a)}function g(a){return h.test(a)?'"'+a.replace(/\"/g,'""')+'"':a}var h=new RegExp('["'+a+"\n]"),i=a.charCodeAt(0);return c.parse=function(a,b){var d;return c.parseRows(a,function(a,c){if(d)return d(a,c-1);var e=new Function("d","return {"+a.map(function(a,b){return JSON.stringify(a)+": d["+b+"]"}).join(",")+"}");d=b?function(a,c){return b(e(a),c)}:e})},c.parseRows=function(a,b){function c(){if(k>=j)return g;if(e)return e=!1,f;var b=k;if(34===a.charCodeAt(b)){for(var c=b;c++k;){var d=a.charCodeAt(k++),h=1;if(10===d)e=!0;else if(13===d)e=!0,10===a.charCodeAt(k)&&(++k,++h);else if(d!==i)continue;return a.substring(b,k-h)}return a.substring(b)}for(var d,e,f={},g={},h=[],j=a.length,k=0,l=0;(d=c())!==g;){for(var m=[];d!==f&&d!==g;)m.push(d),d=c();(!b||(m=b(m,l++)))&&h.push(m)}return h},c.format=function(b){if(Array.isArray(b[0]))return c.formatRows(b);var d=new m,e=[];return b.forEach(function(a){for(var b in a)d.has(b)||e.push(d.add(b))}),[e.map(g).join(a)].concat(b.map(function(b){return e.map(function(a){return g(b[a])}).join(a)})).join("\n")},c.formatRows=function(a){return a.map(f).join("\n")},c},Wf.csv=Wf.dsv(",","text/csv"),Wf.tsv=Wf.dsv(" ","text/tab-separated-values"),Wf.touch=function(a,b,c){if(arguments.length<3&&(c=b,b=t().changedTouches),b)for(var d,e=0,f=b.length;f>e;++e)if((d=b[e]).identifier===c)return S(a,d)};var Vg,Wg,Xg,Yg,Zg,$g=_f[o(_f,"requestAnimationFrame")]||function(a){setTimeout(a,17)};Wf.timer=function(a,b,c){var d=arguments.length;2>d&&(b=0),3>d&&(c=Date.now());var e=c+b,f={c:a,t:e,f:!1,n:null};Wg?Wg.n=f:Vg=f,Wg=f,Xg||(Yg=clearTimeout(Yg),Xg=1,$g(Fa))},Wf.timer.flush=function(){Ga(),Ha()},Wf.round=function(a,b){return b?Math.round(a*(b=Math.pow(10,b)))/b:Math.round(a)};var _g=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(Ja);Wf.formatPrefix=function(a,b){var c=0;return a&&(0>a&&(a*=-1),b&&(a=Wf.round(a,Ia(a,b))),c=1+Math.floor(1e-12+Math.log(a)/Math.LN10),c=Math.max(-24,Math.min(24,3*Math.floor((c-1)/3)))),_g[8+c/3]};var ah=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,bh=Wf.map({b:function(a){return a.toString(2)},c:function(a){return String.fromCharCode(a)},o:function(a){return a.toString(8)},x:function(a){return a.toString(16)},X:function(a){return a.toString(16).toUpperCase()},g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},r:function(a,b){return(a=Wf.round(a,Ia(a,b))).toFixed(Math.max(0,Math.min(20,Ia(a*(1+1e-15),b))))}}),ch=Wf.time={},dh=Date;Ma.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){eh.setUTCDate.apply(this._,arguments)},setDay:function(){eh.setUTCDay.apply(this._,arguments)},setFullYear:function(){eh.setUTCFullYear.apply(this._,arguments)},setHours:function(){eh.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){eh.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){eh.setUTCMinutes.apply(this._,arguments)},setMonth:function(){eh.setUTCMonth.apply(this._,arguments)},setSeconds:function(){eh.setUTCSeconds.apply(this._,arguments)},setTime:function(){eh.setTime.apply(this._,arguments)}};var eh=Date.prototype;ch.year=Na(function(a){return a=ch.day(a),a.setMonth(0,1),a},function(a,b){a.setFullYear(a.getFullYear()+b)},function(a){return a.getFullYear()}),ch.years=ch.year.range,ch.years.utc=ch.year.utc.range,ch.day=Na(function(a){var b=new dh(2e3,0);return b.setFullYear(a.getFullYear(),a.getMonth(),a.getDate()),b},function(a,b){a.setDate(a.getDate()+b)},function(a){return a.getDate()-1}),ch.days=ch.day.range,ch.days.utc=ch.day.utc.range,ch.dayOfYear=function(a){var b=ch.year(a);return Math.floor((a-b-6e4*(a.getTimezoneOffset()-b.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(a,b){b=7-b;var c=ch[a]=Na(function(a){return(a=ch.day(a)).setDate(a.getDate()-(a.getDay()+b)%7),a},function(a,b){a.setDate(a.getDate()+7*Math.floor(b))},function(a){var c=ch.year(a).getDay();return Math.floor((ch.dayOfYear(a)+(c+b)%7)/7)-(c!==b)});ch[a+"s"]=c.range,ch[a+"s"].utc=c.utc.range,ch[a+"OfYear"]=function(a){var c=ch.year(a).getDay();return Math.floor((ch.dayOfYear(a)+(c+b)%7)/7)}}),ch.week=ch.sunday,ch.weeks=ch.sunday.range,ch.weeks.utc=ch.sunday.utc.range,ch.weekOfYear=ch.sundayOfYear;var fh={"-":"",_:" ",0:"0"},gh=/^\s*\d+/,hh=/^%/;Wf.locale=function(a){return{numberFormat:Ka(a),timeFormat:Pa(a)}};var ih=Wf.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Wf.format=ih.numberFormat,Wf.geo={},ib.prototype={s:0,t:0,add:function(a){jb(a,this.t,jh),jb(jh.s,this.s,this),this.s?this.t+=jh.t:this.s=jh.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var jh=new ib;Wf.geo.stream=function(a,b){a&&kh.hasOwnProperty(a.type)?kh[a.type](a,b):kb(a,b)};var kh={Feature:function(a,b){kb(a.geometry,b)},FeatureCollection:function(a,b){for(var c=a.features,d=-1,e=c.length;++da?4*zg+a:a,oh.lineStart=oh.lineEnd=oh.point=p}};Wf.geo.bounds=function(){function a(a,b){t.push(u=[k=a,m=a]),l>b&&(l=b),b>n&&(n=b)}function b(b,c){var d=ob([b*Eg,c*Eg]);if(r){var e=qb(r,d),f=[e[1],-e[0],0],g=qb(f,e);tb(g),g=ub(g);var i=b-o,j=i>0?1:-1,p=g[0]*Fg*j,q=ig(i)>180;if(q^(p>j*o&&j*b>p)){var s=g[1]*Fg;s>n&&(n=s)}else if(p=(p+360)%360-180,q^(p>j*o&&j*b>p)){var s=-g[1]*Fg;l>s&&(l=s)}else l>c&&(l=c),c>n&&(n=c);q?o>b?h(k,b)>h(k,m)&&(m=b):h(b,m)>h(k,m)&&(k=b):m>=k?(k>b&&(k=b),b>m&&(m=b)):b>o?h(k,b)>h(k,m)&&(m=b):h(b,m)>h(k,m)&&(k=b)}else a(b,c);r=d,o=b}function c(){v.point=b}function d(){u[0]=k,u[1]=m,v.point=a,r=null}function e(a,c){if(r){var d=a-o;s+=ig(d)>180?d+(d>0?360:-360):d}else p=a,q=c;oh.point(a,c),b(a,c)}function f(){oh.lineStart()}function g(){e(p,q),oh.lineEnd(),ig(s)>Cg&&(k=-(m=180)),u[0]=k,u[1]=m,r=null}function h(a,b){return(b-=a)<0?b+360:b}function i(a,b){return a[0]-b[0]}function j(a,b){return b[0]<=b[1]?b[0]<=a&&a<=b[1]:anh?(k=-(m=180),l=-(n=90)):s>Cg?n=90:-Cg>s&&(l=-90),u[0]=k,u[1]=m}};return function(a){n=m=-(k=l=1/0),t=[],Wf.geo.stream(a,v);var b=t.length;if(b){t.sort(i);for(var c,d=1,e=t[0],f=[e];b>d;++d)c=t[d],j(c[0],e)||j(c[1],e)?(h(e[0],c[1])>h(e[0],e[1])&&(e[1]=c[1]),h(c[0],e[1])>h(e[0],e[1])&&(e[0]=c[0])):f.push(e=c);for(var g,c,o=-(1/0),b=f.length-1,d=0,e=f[b];b>=d;e=c,++d)c=f[d],(g=h(e[1],c[0]))>o&&(o=g,k=c[0],m=e[1])}return t=u=null,k===1/0||l===1/0?[[0/0,0/0],[0/0,0/0]]:[[k,l],[m,n]]; - -}}(),Wf.geo.centroid=function(a){ph=qh=rh=sh=th=uh=vh=wh=xh=yh=zh=0,Wf.geo.stream(a,Ah);var b=xh,c=yh,d=zh,e=b*b+c*c+d*d;return Dg>e&&(b=uh,c=vh,d=wh,Cg>qh&&(b=rh,c=sh,d=th),e=b*b+c*c+d*d,Dg>e)?[0/0,0/0]:[Math.atan2(c,b)*Fg,Z(d/Math.sqrt(e))*Fg]};var ph,qh,rh,sh,th,uh,vh,wh,xh,yh,zh,Ah={sphere:p,point:wb,lineStart:yb,lineEnd:zb,polygonStart:function(){Ah.lineStart=Ab},polygonEnd:function(){Ah.lineStart=yb}},Bh=Fb(Bb,Kb,Mb,[-zg,-zg/2]),Ch=1e9;Wf.geo.clipExtent=function(){var a,b,c,d,e,f,g={stream:function(a){return e&&(e.valid=!1),e=f(a),e.valid=!0,e},extent:function(h){return arguments.length?(f=Pb(a=+h[0][0],b=+h[0][1],c=+h[1][0],d=+h[1][1]),e&&(e.valid=!1,e=null),g):[[a,b],[c,d]]}};return g.extent([[0,0],[960,500]])},(Wf.geo.conicEqualArea=function(){return Rb(Sb)}).raw=Sb,Wf.geo.albers=function(){return Wf.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},Wf.geo.albersUsa=function(){function a(a){var f=a[0],g=a[1];return b=null,c(f,g),b||(d(f,g),b)||e(f,g),b}var b,c,d,e,f=Wf.geo.albers(),g=Wf.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),h=Wf.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),i={point:function(a,c){b=[a,c]}};return a.invert=function(a){var b=f.scale(),c=f.translate(),d=(a[0]-c[0])/b,e=(a[1]-c[1])/b;return(e>=.12&&.234>e&&d>=-.425&&-.214>d?g:e>=.166&&.234>e&&d>=-.214&&-.115>d?h:f).invert(a)},a.stream=function(a){var b=f.stream(a),c=g.stream(a),d=h.stream(a);return{point:function(a,e){b.point(a,e),c.point(a,e),d.point(a,e)},sphere:function(){b.sphere(),c.sphere(),d.sphere()},lineStart:function(){b.lineStart(),c.lineStart(),d.lineStart()},lineEnd:function(){b.lineEnd(),c.lineEnd(),d.lineEnd()},polygonStart:function(){b.polygonStart(),c.polygonStart(),d.polygonStart()},polygonEnd:function(){b.polygonEnd(),c.polygonEnd(),d.polygonEnd()}}},a.precision=function(b){return arguments.length?(f.precision(b),g.precision(b),h.precision(b),a):f.precision()},a.scale=function(b){return arguments.length?(f.scale(b),g.scale(.35*b),h.scale(b),a.translate(f.translate())):f.scale()},a.translate=function(b){if(!arguments.length)return f.translate();var j=f.scale(),k=+b[0],l=+b[1];return c=f.translate(b).clipExtent([[k-.455*j,l-.238*j],[k+.455*j,l+.238*j]]).stream(i).point,d=g.translate([k-.307*j,l+.201*j]).clipExtent([[k-.425*j+Cg,l+.12*j+Cg],[k-.214*j-Cg,l+.234*j-Cg]]).stream(i).point,e=h.translate([k-.205*j,l+.212*j]).clipExtent([[k-.214*j+Cg,l+.166*j+Cg],[k-.115*j-Cg,l+.234*j-Cg]]).stream(i).point,a},a.scale(1070)};var Dh,Eh,Fh,Gh,Hh,Ih,Jh={point:p,lineStart:p,lineEnd:p,polygonStart:function(){Eh=0,Jh.lineStart=Tb},polygonEnd:function(){Jh.lineStart=Jh.lineEnd=Jh.point=p,Dh+=ig(Eh/2)}},Kh={point:Ub,lineStart:p,lineEnd:p,polygonStart:p,polygonEnd:p},Lh={point:Xb,lineStart:Yb,lineEnd:Zb,polygonStart:function(){Lh.lineStart=$b},polygonEnd:function(){Lh.point=Xb,Lh.lineStart=Yb,Lh.lineEnd=Zb}};Wf.geo.path=function(){function a(a){return a&&("function"==typeof h&&f.pointRadius(+h.apply(this,arguments)),g&&g.valid||(g=e(f)),Wf.geo.stream(a,g)),f.result()}function b(){return g=null,a}var c,d,e,f,g,h=4.5;return a.area=function(a){return Dh=0,Wf.geo.stream(a,e(Jh)),Dh},a.centroid=function(a){return rh=sh=th=uh=vh=wh=xh=yh=zh=0,Wf.geo.stream(a,e(Lh)),zh?[xh/zh,yh/zh]:wh?[uh/wh,vh/wh]:th?[rh/th,sh/th]:[0/0,0/0]},a.bounds=function(a){return Hh=Ih=-(Fh=Gh=1/0),Wf.geo.stream(a,e(Kh)),[[Fh,Gh],[Hh,Ih]]},a.projection=function(a){return arguments.length?(e=(c=a)?a.stream||bc(a):Ba,b()):c},a.context=function(a){return arguments.length?(f=null==(d=a)?new Vb:new _b(a),"function"!=typeof h&&f.pointRadius(h),b()):d},a.pointRadius=function(b){return arguments.length?(h="function"==typeof b?b:(f.pointRadius(+b),+b),a):h},a.projection(Wf.geo.albersUsa()).context(null)},Wf.geo.transform=function(a){return{stream:function(b){var c=new cc(b);for(var d in a)c[d]=a[d];return c}}},cc.prototype={point:function(a,b){this.stream.point(a,b)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},Wf.geo.projection=ec,Wf.geo.projectionMutator=fc,(Wf.geo.equirectangular=function(){return ec(hc)}).raw=hc.invert=hc,Wf.geo.rotation=function(a){function b(b){return b=a(b[0]*Eg,b[1]*Eg),b[0]*=Fg,b[1]*=Fg,b}return a=jc(a[0]%360*Eg,a[1]*Eg,a.length>2?a[2]*Eg:0),b.invert=function(b){return b=a.invert(b[0]*Eg,b[1]*Eg),b[0]*=Fg,b[1]*=Fg,b},b},ic.invert=hc,Wf.geo.circle=function(){function a(){var a="function"==typeof d?d.apply(this,arguments):d,b=jc(-a[0]*Eg,-a[1]*Eg,0).invert,e=[];return c(null,null,1,{point:function(a,c){e.push(a=b(a,c)),a[0]*=Fg,a[1]*=Fg}}),{type:"Polygon",coordinates:[e]}}var b,c,d=[0,0],e=6;return a.origin=function(b){return arguments.length?(d=b,a):d},a.angle=function(d){return arguments.length?(c=nc((b=+d)*Eg,e*Eg),a):b},a.precision=function(d){return arguments.length?(c=nc(b*Eg,(e=+d)*Eg),a):e},a.angle(90)},Wf.geo.distance=function(a,b){var c,d=(b[0]-a[0])*Eg,e=a[1]*Eg,f=b[1]*Eg,g=Math.sin(d),h=Math.cos(d),i=Math.sin(e),j=Math.cos(e),k=Math.sin(f),l=Math.cos(f);return Math.atan2(Math.sqrt((c=l*g)*c+(c=j*k-i*l*h)*c),i*k+j*l*h)},Wf.geo.graticule=function(){function a(){return{type:"MultiLineString",coordinates:b()}}function b(){return Wf.range(Math.ceil(f/q)*q,e,q).map(m).concat(Wf.range(Math.ceil(j/r)*r,i,r).map(n)).concat(Wf.range(Math.ceil(d/o)*o,c,o).filter(function(a){return ig(a%q)>Cg}).map(k)).concat(Wf.range(Math.ceil(h/p)*p,g,p).filter(function(a){return ig(a%r)>Cg}).map(l))}var c,d,e,f,g,h,i,j,k,l,m,n,o=10,p=o,q=90,r=360,s=2.5;return a.lines=function(){return b().map(function(a){return{type:"LineString",coordinates:a}})},a.outline=function(){return{type:"Polygon",coordinates:[m(f).concat(n(i).slice(1),m(e).reverse().slice(1),n(j).reverse().slice(1))]}},a.extent=function(b){return arguments.length?a.majorExtent(b).minorExtent(b):a.minorExtent()},a.majorExtent=function(b){return arguments.length?(f=+b[0][0],e=+b[1][0],j=+b[0][1],i=+b[1][1],f>e&&(b=f,f=e,e=b),j>i&&(b=j,j=i,i=b),a.precision(s)):[[f,j],[e,i]]},a.minorExtent=function(b){return arguments.length?(d=+b[0][0],c=+b[1][0],h=+b[0][1],g=+b[1][1],d>c&&(b=d,d=c,c=b),h>g&&(b=h,h=g,g=b),a.precision(s)):[[d,h],[c,g]]},a.step=function(b){return arguments.length?a.majorStep(b).minorStep(b):a.minorStep()},a.majorStep=function(b){return arguments.length?(q=+b[0],r=+b[1],a):[q,r]},a.minorStep=function(b){return arguments.length?(o=+b[0],p=+b[1],a):[o,p]},a.precision=function(b){return arguments.length?(s=+b,k=pc(h,g,90),l=qc(d,c,s),m=pc(j,i,90),n=qc(f,e,s),a):s},a.majorExtent([[-180,-90+Cg],[180,90-Cg]]).minorExtent([[-180,-80-Cg],[180,80+Cg]])},Wf.geo.greatArc=function(){function a(){return{type:"LineString",coordinates:[b||d.apply(this,arguments),c||e.apply(this,arguments)]}}var b,c,d=rc,e=sc;return a.distance=function(){return Wf.geo.distance(b||d.apply(this,arguments),c||e.apply(this,arguments))},a.source=function(c){return arguments.length?(d=c,b="function"==typeof c?null:c,a):d},a.target=function(b){return arguments.length?(e=b,c="function"==typeof b?null:b,a):e},a.precision=function(){return arguments.length?a:0},a},Wf.geo.interpolate=function(a,b){return tc(a[0]*Eg,a[1]*Eg,b[0]*Eg,b[1]*Eg)},Wf.geo.length=function(a){return Mh=0,Wf.geo.stream(a,Nh),Mh};var Mh,Nh={sphere:p,point:p,lineStart:uc,lineEnd:p,polygonStart:p,polygonEnd:p},Oh=vc(function(a){return Math.sqrt(2/(1+a))},function(a){return 2*Math.asin(a/2)});(Wf.geo.azimuthalEqualArea=function(){return ec(Oh)}).raw=Oh;var Ph=vc(function(a){var b=Math.acos(a);return b&&b/Math.sin(b)},Ba);(Wf.geo.azimuthalEquidistant=function(){return ec(Ph)}).raw=Ph,(Wf.geo.conicConformal=function(){return Rb(wc)}).raw=wc,(Wf.geo.conicEquidistant=function(){return Rb(xc)}).raw=xc;var Qh=vc(function(a){return 1/a},Math.atan);(Wf.geo.gnomonic=function(){return ec(Qh)}).raw=Qh,yc.invert=function(a,b){return[a,2*Math.atan(Math.exp(b))-Bg]},(Wf.geo.mercator=function(){return zc(yc)}).raw=yc;var Rh=vc(function(){return 1},Math.asin);(Wf.geo.orthographic=function(){return ec(Rh)}).raw=Rh;var Sh=vc(function(a){return 1/(1+a)},function(a){return 2*Math.atan(a)});(Wf.geo.stereographic=function(){return ec(Sh)}).raw=Sh,Ac.invert=function(a,b){return[-b,2*Math.atan(Math.exp(a))-Bg]},(Wf.geo.transverseMercator=function(){var a=zc(Ac),b=a.center,c=a.rotate;return a.center=function(a){return a?b([-a[1],a[0]]):(a=b(),[-a[1],a[0]])},a.rotate=function(a){return a?c([a[0],a[1],a.length>2?a[2]+90:90]):(a=c(),[a[0],a[1],a[2]-90])},a.rotate([0,0])}).raw=Ac,Wf.geom={},Wf.geom.hull=function(a){function b(a){if(a.length<3)return[];var b,e=Aa(c),f=Aa(d),g=a.length,h=[],i=[];for(b=0;g>b;b++)h.push([+e.call(this,a[b],b),+f.call(this,a[b],b),b]);for(h.sort(Ec),b=0;g>b;b++)i.push([h[b][0],-h[b][1]]);var j=Dc(h),k=Dc(i),l=k[0]===j[0],m=k[k.length-1]===j[j.length-1],n=[];for(b=j.length-1;b>=0;--b)n.push(a[h[j[b]][2]]);for(b=+l;b=d&&j.x<=f&&j.y>=e&&j.y<=g?[[d,g],[f,g],[f,e],[d,e]]:[];k.point=a[h]}),b}function c(a){return a.map(function(a,b){return{x:Math.round(f(a,b)/Cg)*Cg,y:Math.round(g(a,b)/Cg)*Cg,i:b}})}var d=Bc,e=Cc,f=d,g=e,h=_h;return a?b(a):(b.links=function(a){return fd(c(a)).edges.filter(function(a){return a.l&&a.r}).map(function(b){return{source:a[b.l.i],target:a[b.r.i]}})},b.triangles=function(a){var b=[];return fd(c(a)).cells.forEach(function(c,d){for(var e,f,g=c.site,h=c.edges.sort(Rc),i=-1,j=h.length,k=h[j-1].edge,l=k.l===g?k.r:k.l;++i=j,m=d>=k,n=(m<<1)+l;a.leaf=!1,a=a.nodes[n]||(a.nodes[n]=kd()),l?e=j:h=j,m?g=k:i=k,f(a,b,c,d,e,g,h,i)}var k,l,m,n,o,p,q,r,s,t=Aa(h),u=Aa(i);if(null!=b)p=b,q=c,r=d,s=e;else if(r=s=-(p=q=1/0),l=[],m=[],o=a.length,g)for(n=0;o>n;++n)k=a[n],k.xr&&(r=k.x),k.y>s&&(s=k.y),l.push(k.x),m.push(k.y);else for(n=0;o>n;++n){var v=+t(k=a[n],n),w=+u(k,n);p>v&&(p=v),q>w&&(q=w),v>r&&(r=v),w>s&&(s=w),l.push(v),m.push(w)}var x=r-p,y=s-q;x>y?s=q+x:r=p+y;var z=kd();if(z.add=function(a){f(z,a,+t(a,++n),+u(a,n),p,q,r,s)},z.visit=function(a){ld(a,z,p,q,r,s)},n=-1,null==b){for(;++n=0?a.substring(0,b):a,d=b>=0?a.substring(b+1):"in";return c=di.get(c)||ci,d=ei.get(d)||Ba,sd(d(c.apply(null,Xf.call(arguments,1))))},Wf.interpolateHcl=Fd,Wf.interpolateHsl=Gd,Wf.interpolateLab=Hd,Wf.interpolateRound=Id,Wf.transform=function(a){var b=Zf.createElementNS(Wf.ns.prefix.svg,"g");return(Wf.transform=function(a){if(null!=a){b.setAttribute("transform",a);var c=b.transform.baseVal.consolidate()}return new Jd(c?c.matrix:fi)})(a)},Jd.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var fi={a:1,b:0,c:0,d:1,e:0,f:0};Wf.interpolateTransform=Nd,Wf.layout={},Wf.layout.bundle=function(){return function(a){for(var b=[],c=-1,d=a.length;++ch*h/q){if(o>i){var j=b.charge/i;a.px-=f*j,a.py-=g*j}return!0}if(b.point&&i&&o>i){var j=b.pointCharge/i;a.px-=f*j,a.py-=g*j}}return!b.charge}}function b(a){a.px=Wf.event.x,a.py=Wf.event.y,h.resume()}var c,d,e,f,g,h={},i=Wf.dispatch("start","tick","end"),j=[1,1],k=.9,l=gi,m=hi,n=-30,o=ii,p=.1,q=.64,r=[],s=[];return h.tick=function(){if((d*=.99)<.005)return i.end({type:"end",alpha:d=0}),!0;var b,c,h,l,m,o,q,t,u,v=r.length,w=s.length;for(c=0;w>c;++c)h=s[c],l=h.source,m=h.target,t=m.x-l.x,u=m.y-l.y,(o=t*t+u*u)&&(o=d*f[c]*((o=Math.sqrt(o))-e[c])/o,t*=o,u*=o,m.x-=t*(q=l.weight/(m.weight+l.weight)),m.y-=u*q,l.x+=t*(q=1-q),l.y+=u*q);if((q=d*p)&&(t=j[0]/2,u=j[1]/2,c=-1,q))for(;++c0?a:0:a>0&&(i.start({type:"start",alpha:d=a}),Wf.timer(h.tick)),h):d},h.start=function(){function a(a,d){if(!c){for(c=new Array(i),h=0;i>h;++h)c[h]=[];for(h=0;j>h;++h){var e=s[h];c[e.source.index].push(e.target),c[e.target.index].push(e.source)}}for(var f,g=c[b],h=-1,j=g.length;++hb;++b)(d=r[b]).index=b,d.weight=0;for(b=0;k>b;++b)d=s[b],"number"==typeof d.source&&(d.source=r[d.source]),"number"==typeof d.target&&(d.target=r[d.target]),++d.source.weight,++d.target.weight;for(b=0;i>b;++b)d=r[b],isNaN(d.x)&&(d.x=a("x",o)),isNaN(d.y)&&(d.y=a("y",p)),isNaN(d.px)&&(d.px=d.x),isNaN(d.py)&&(d.py=d.y);if(e=[],"function"==typeof l)for(b=0;k>b;++b)e[b]=+l.call(this,s[b],b);else for(b=0;k>b;++b)e[b]=l;if(f=[],"function"==typeof m)for(b=0;k>b;++b)f[b]=+m.call(this,s[b],b);else for(b=0;k>b;++b)f[b]=m;if(g=[],"function"==typeof n)for(b=0;i>b;++b)g[b]=+n.call(this,r[b],b);else for(b=0;i>b;++b)g[b]=n;return h.resume()},h.resume=function(){return h.alpha(.1)},h.stop=function(){return h.alpha(0)},h.drag=function(){return c||(c=Wf.behavior.drag().origin(Ba).on("dragstart.force",Td).on("drag.force",b).on("dragend.force",Ud)),arguments.length?void this.on("mouseover.force",Vd).on("mouseout.force",Wd).call(c):c},Wf.rebind(h,i,"on")};var gi=20,hi=1,ii=1/0;Wf.layout.hierarchy=function(){function a(e){var f,g=[e],h=[];for(e.depth=0;null!=(f=g.pop());)if(h.push(f),(j=c.call(a,f,f.depth))&&(i=j.length)){for(var i,j,k;--i>=0;)g.push(k=j[i]),k.parent=f,k.depth=f.depth+1;d&&(f.value=0),f.children=j}else d&&(f.value=+d.call(a,f,f.depth)||0),delete f.children;return $d(e,function(a){var c,e;b&&(c=a.children)&&c.sort(b),d&&(e=a.parent)&&(e.value+=a.value)}),h}var b=be,c=_d,d=ae;return a.sort=function(c){return arguments.length?(b=c,a):b},a.children=function(b){return arguments.length?(c=b,a):c},a.value=function(b){return arguments.length?(d=b,a):d},a.revalue=function(b){return d&&(Zd(b,function(a){a.children&&(a.value=0)}),$d(b,function(b){var c;b.children||(b.value=+d.call(a,b,b.depth)||0),(c=b.parent)&&(c.value+=b.value)})),b},a},Wf.layout.partition=function(){function a(b,c,d,e){var f=b.children;if(b.x=c,b.y=b.depth*e,b.dx=d,b.dy=e,f&&(g=f.length)){var g,h,i,j=-1;for(d=b.value?d/b.value:0;++jn;++n)for(e.call(a,j[0][n],o=p[n],k[0][n][1]),m=1;q>m;++m)e.call(a,j[m][n],o+=k[m-1][n][1],k[m][n][1]);return h}var b=Ba,c=ge,d=he,e=fe,f=de,g=ee;return a.values=function(c){return arguments.length?(b=c,a):b},a.order=function(b){return arguments.length?(c="function"==typeof b?b:ki.get(b)||ge,a):c},a.offset=function(b){return arguments.length?(d="function"==typeof b?b:li.get(b)||he,a):d},a.x=function(b){return arguments.length?(f=b,a):f},a.y=function(b){return arguments.length?(g=b,a):g},a.out=function(b){return arguments.length?(e=b,a):e},a};var ki=Wf.map({"inside-out":function(a){var b,c,d=a.length,e=a.map(ie),f=a.map(je),g=Wf.range(d).sort(function(a,b){return e[a]-e[b]}),h=0,i=0,j=[],k=[];for(b=0;d>b;++b)c=g[b],i>h?(h+=f[c],j.push(c)):(i+=f[c],k.push(c));return k.reverse().concat(j)},reverse:function(a){return Wf.range(a.length).reverse()},"default":ge}),li=Wf.map({silhouette:function(a){var b,c,d,e=a.length,f=a[0].length,g=[],h=0,i=[];for(c=0;f>c;++c){for(b=0,d=0;e>b;b++)d+=a[b][c][1];d>h&&(h=d),g.push(d)}for(c=0;f>c;++c)i[c]=(h-g[c])/2;return i},wiggle:function(a){var b,c,d,e,f,g,h,i,j,k=a.length,l=a[0],m=l.length,n=[];for(n[0]=i=j=0,c=1;m>c;++c){for(b=0,e=0;k>b;++b)e+=a[b][c][1];for(b=0,f=0,h=l[c][0]-l[c-1][0];k>b;++b){for(d=0,g=(a[b][c][1]-a[b][c-1][1])/(2*h);b>d;++d)g+=(a[d][c][1]-a[d][c-1][1])/h;f+=g*a[b][c][1]}n[c]=i-=e?f/e*h:0,j>i&&(j=i)}for(c=0;m>c;++c)n[c]-=j;return n},expand:function(a){var b,c,d,e=a.length,f=a[0].length,g=1/e,h=[];for(c=0;f>c;++c){for(b=0,d=0;e>b;b++)d+=a[b][c][1];if(d)for(b=0;e>b;b++)a[b][c][1]/=d;else for(b=0;e>b;b++)a[b][c][1]=g}for(c=0;f>c;++c)h[c]=0;return h},zero:he});Wf.layout.histogram=function(){function a(a,f){for(var g,h,i=[],j=a.map(c,this),k=d.call(this,j,f),l=e.call(this,k,j,f),f=-1,m=j.length,n=l.length-1,o=b?1:1/m;++f0)for(f=-1;++f=k[0]&&h<=k[1]&&(g=i[Wf.bisect(l,h,1,n)-1],g.y+=o,g.push(a[f]));return i}var b=!0,c=Number,d=ne,e=le;return a.value=function(b){return arguments.length?(c=b,a):c},a.range=function(b){return arguments.length?(d=Aa(b),a):d},a.bins=function(b){return arguments.length?(e="number"==typeof b?function(a){return me(a,b)}:Aa(b),a):e},a.frequency=function(c){return arguments.length?(b=!!c,a):b},a},Wf.layout.pack=function(){function a(a,f){var g=c.call(this,a,f),h=g[0],i=e[0],j=e[1],k=null==b?Math.sqrt:"function"==typeof b?b:function(){return b};if(h.x=h.y=0,$d(h,function(a){a.r=+k(a.value)}),$d(h,se),d){var l=d*(b?1:Math.max(2*h.r/i,2*h.r/j))/2;$d(h,function(a){a.r+=l}),$d(h,se),$d(h,function(a){a.r-=l})}return ve(h,i/2,j/2,b?1:1/Math.max(2*h.r/i,2*h.r/j)),g}var b,c=Wf.layout.hierarchy().sort(oe),d=0,e=[1,1];return a.size=function(b){return arguments.length?(e=b,a):e},a.radius=function(c){return arguments.length?(b=null==c||"function"==typeof c?c:+c,a):b},a.padding=function(b){return arguments.length?(d=+b,a):d},Yd(a,c)},Wf.layout.tree=function(){function a(a,e){var k=g.call(this,a,e),l=k[0],m=b(l);if($d(m,c),m.parent.m=-m.z,Zd(m,d),j)Zd(l,f);else{var n=l,o=l,p=l;Zd(l,function(a){a.xo.x&&(o=a),a.depth>p.depth&&(p=a)});var q=h(n,o)/2-n.x,r=i[0]/(o.x+h(o,n)/2+q),s=i[1]/(p.depth||1);Zd(l,function(a){a.x=(a.x+q)*r,a.y=a.depth*s})}return k}function b(a){for(var b,c={A:null,children:[a]},d=[c];null!=(b=d.pop());)for(var e,f=b.children,g=0,h=f.length;h>g;++g)d.push((f[g]=e={_:f[g],parent:b,children:(e=f[g].children)&&e.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:g}).a=e);return c.children[0]}function c(a){var b=a.children,c=a.parent.children,d=a.i?c[a.i-1]:null;if(b.length){Be(a);var f=(b[0].z+b[b.length-1].z)/2;d?(a.z=d.z+h(a._,d._),a.m=a.z-f):a.z=f}else d&&(a.z=d.z+h(a._,d._));a.parent.A=e(a,d,a.parent.A||c[0])}function d(a){a._.x=a.z+a.parent.m,a.m+=a.parent.m}function e(a,b,c){if(b){for(var d,e=a,f=a,g=b,i=e.parent.children[0],j=e.m,k=f.m,l=g.m,m=i.m;g=ze(g),e=ye(e),g&&e;)i=ye(i),f=ze(f),f.a=a,d=g.z+l-e.z-j+h(g._,e._),d>0&&(Ae(Ce(g,a,c),a,d),j+=d,k+=d),l+=g.m,j+=e.m,m+=i.m,k+=f.m;g&&!ze(f)&&(f.t=g,f.m+=l-k),e&&!ye(i)&&(i.t=e,i.m+=j-m,c=a)}return c}function f(a){a.x*=i[0],a.y=a.depth*i[1]}var g=Wf.layout.hierarchy().sort(null).value(null),h=xe,i=[1,1],j=null;return a.separation=function(b){return arguments.length?(h=b,a):h},a.size=function(b){return arguments.length?(j=null==(i=b)?f:null,a):j?null:i},a.nodeSize=function(b){return arguments.length?(j=null==(i=b)?null:f,a):j?i:null},Yd(a,g)},Wf.layout.cluster=function(){function a(a,f){var g,h=b.call(this,a,f),i=h[0],j=0;$d(i,function(a){var b=a.children;b&&b.length?(a.x=Ee(b),a.y=De(b)):(a.x=g?j+=c(a,g):0,a.y=0,g=a)});var k=Fe(i),l=Ge(i),m=k.x-c(k,l)/2,n=l.x+c(l,k)/2;return $d(i,e?function(a){a.x=(a.x-i.x)*d[0],a.y=(i.y-a.y)*d[1]}:function(a){a.x=(a.x-m)/(n-m)*d[0],a.y=(1-(i.y?a.y/i.y:1))*d[1]}),h}var b=Wf.layout.hierarchy().sort(null).value(null),c=xe,d=[1,1],e=!1;return a.separation=function(b){return arguments.length?(c=b,a):c},a.size=function(b){return arguments.length?(e=null==(d=b),a):e?null:d},a.nodeSize=function(b){return arguments.length?(e=null!=(d=b),a):e?d:null},Yd(a,b)},Wf.layout.treemap=function(){function a(a,b){for(var c,d,e=-1,f=a.length;++eb?0:b),c.area=isNaN(d)||0>=d?0:d}function b(c){var f=c.children;if(f&&f.length){var g,h,i,j=l(c),k=[],m=f.slice(),o=1/0,p="slice"===n?j.dx:"dice"===n?j.dy:"slice-dice"===n?1&c.depth?j.dy:j.dx:Math.min(j.dx,j.dy);for(a(m,j.dx*j.dy/c.value),k.area=0;(i=m.length)>0;)k.push(g=m[i-1]),k.area+=g.area,"squarify"!==n||(h=d(k,p))<=o?(m.pop(),o=h):(k.area-=k.pop().area,e(k,p,j,!1),p=Math.min(j.dx,j.dy),k.length=k.area=0,o=1/0);k.length&&(e(k,p,j,!0),k.length=k.area=0),f.forEach(b)}}function c(b){var d=b.children;if(d&&d.length){var f,g=l(b),h=d.slice(),i=[];for(a(h,g.dx*g.dy/b.value),i.area=0;f=h.pop();)i.push(f),i.area+=f.area,null!=f.z&&(e(i,f.z?g.dx:g.dy,g,!h.length),i.length=i.area=0);d.forEach(c)}}function d(a,b){for(var c,d=a.area,e=0,f=1/0,g=-1,h=a.length;++gc&&(f=c),c>e&&(e=c));return d*=d,b*=b,d?Math.max(b*e*o/d,d/(b*f*o)):1/0}function e(a,b,c,d){var e,f=-1,g=a.length,h=c.x,j=c.y,k=b?i(a.area/b):0;if(b==c.dx){for((d||k>c.dy)&&(k=c.dy);++fc.dx)&&(k=c.dx);++fc&&(b=1),1>c&&(a=0),function(){var c,d,e;do c=2*Math.random()-1,d=2*Math.random()-1,e=c*c+d*d;while(!e||e>1);return a+b*c*Math.sqrt(-2*Math.log(e)/e)}},logNormal:function(){var a=Wf.random.normal.apply(Wf,arguments);return function(){return Math.exp(a())}},bates:function(a){var b=Wf.random.irwinHall(a);return function(){return b()/a}},irwinHall:function(a){return function(){for(var b=0,c=0;a>c;c++)b+=Math.random();return b}}},Wf.scale={};var mi={floor:Ba,ceil:Ba};Wf.scale.linear=function(){return Pe([0,1],[0,1],qd,!1)};var ni={s:1,g:1,p:1,r:1,e:1};Wf.scale.log=function(){return Xe(Wf.scale.linear().domain([0,1]),10,!0,[1,10])};var oi=Wf.format(".0e"),pi={floor:function(a){return-Math.ceil(-a)},ceil:function(a){return-Math.floor(-a)}};Wf.scale.pow=function(){return Ye(Wf.scale.linear(),1,[0,1])},Wf.scale.sqrt=function(){return Wf.scale.pow().exponent(.5)},Wf.scale.ordinal=function(){return $e([],{t:"range",a:[[]]})},Wf.scale.category10=function(){return Wf.scale.ordinal().range(qi)},Wf.scale.category20=function(){return Wf.scale.ordinal().range(ri)},Wf.scale.category20b=function(){return Wf.scale.ordinal().range(si)},Wf.scale.category20c=function(){return Wf.scale.ordinal().range(ti)};var qi=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(ra),ri=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(ra),si=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(ra),ti=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(ra);Wf.scale.quantile=function(){return _e([],[])},Wf.scale.quantize=function(){return af(0,1,[0,1])},Wf.scale.threshold=function(){return bf([.5],[0,1])},Wf.scale.identity=function(){return cf([0,1])},Wf.svg={},Wf.svg.arc=function(){function a(){var a=b.apply(this,arguments),f=c.apply(this,arguments),g=d.apply(this,arguments)+ui,h=e.apply(this,arguments)+ui,i=(g>h&&(i=g,g=h,h=i),h-g),j=zg>i?"0":"1",k=Math.cos(g),l=Math.sin(g),m=Math.cos(h),n=Math.sin(h); - -return i>=vi?a?"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+-f+"A"+f+","+f+" 0 1,1 0,"+f+"M0,"+a+"A"+a+","+a+" 0 1,0 0,"+-a+"A"+a+","+a+" 0 1,0 0,"+a+"Z":"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+-f+"A"+f+","+f+" 0 1,1 0,"+f+"Z":a?"M"+f*k+","+f*l+"A"+f+","+f+" 0 "+j+",1 "+f*m+","+f*n+"L"+a*m+","+a*n+"A"+a+","+a+" 0 "+j+",0 "+a*k+","+a*l+"Z":"M"+f*k+","+f*l+"A"+f+","+f+" 0 "+j+",1 "+f*m+","+f*n+"L0,0Z"}var b=df,c=ef,d=ff,e=gf;return a.innerRadius=function(c){return arguments.length?(b=Aa(c),a):b},a.outerRadius=function(b){return arguments.length?(c=Aa(b),a):c},a.startAngle=function(b){return arguments.length?(d=Aa(b),a):d},a.endAngle=function(b){return arguments.length?(e=Aa(b),a):e},a.centroid=function(){var a=(b.apply(this,arguments)+c.apply(this,arguments))/2,f=(d.apply(this,arguments)+e.apply(this,arguments))/2+ui;return[Math.cos(f)*a,Math.sin(f)*a]},a};var ui=-Bg,vi=Ag-Cg;Wf.svg.line=function(){return hf(Ba)};var wi=Wf.map({linear:jf,"linear-closed":kf,step:lf,"step-before":mf,"step-after":nf,basis:tf,"basis-open":uf,"basis-closed":vf,bundle:wf,cardinal:qf,"cardinal-open":of,"cardinal-closed":pf,monotone:Cf});wi.forEach(function(a,b){b.key=a,b.closed=/-closed$/.test(a)});var xi=[0,2/3,1/3,0],yi=[0,1/3,2/3,0],zi=[0,1/6,2/3,1/6];Wf.svg.line.radial=function(){var a=hf(Df);return a.radius=a.x,delete a.x,a.angle=a.y,delete a.y,a},mf.reverse=nf,nf.reverse=mf,Wf.svg.area=function(){return Ef(Ba)},Wf.svg.area.radial=function(){var a=Ef(Df);return a.radius=a.x,delete a.x,a.innerRadius=a.x0,delete a.x0,a.outerRadius=a.x1,delete a.x1,a.angle=a.y,delete a.y,a.startAngle=a.y0,delete a.y0,a.endAngle=a.y1,delete a.y1,a},Wf.svg.chord=function(){function a(a,h){var i=b(this,f,a,h),j=b(this,g,a,h);return"M"+i.p0+d(i.r,i.p1,i.a1-i.a0)+(c(i,j)?e(i.r,i.p1,i.r,i.p0):e(i.r,i.p1,j.r,j.p0)+d(j.r,j.p1,j.a1-j.a0)+e(j.r,j.p1,i.r,i.p0))+"Z"}function b(a,b,c,d){var e=b.call(a,c,d),f=h.call(a,e,d),g=i.call(a,e,d)+ui,k=j.call(a,e,d)+ui;return{r:f,a0:g,a1:k,p0:[f*Math.cos(g),f*Math.sin(g)],p1:[f*Math.cos(k),f*Math.sin(k)]}}function c(a,b){return a.a0==b.a0&&a.a1==b.a1}function d(a,b,c){return"A"+a+","+a+" 0 "+ +(c>zg)+",1 "+b}function e(a,b,c,d){return"Q 0,0 "+d}var f=rc,g=sc,h=Ff,i=ff,j=gf;return a.radius=function(b){return arguments.length?(h=Aa(b),a):h},a.source=function(b){return arguments.length?(f=Aa(b),a):f},a.target=function(b){return arguments.length?(g=Aa(b),a):g},a.startAngle=function(b){return arguments.length?(i=Aa(b),a):i},a.endAngle=function(b){return arguments.length?(j=Aa(b),a):j},a},Wf.svg.diagonal=function(){function a(a,e){var f=b.call(this,a,e),g=c.call(this,a,e),h=(f.y+g.y)/2,i=[f,{x:f.x,y:h},{x:g.x,y:h},g];return i=i.map(d),"M"+i[0]+"C"+i[1]+" "+i[2]+" "+i[3]}var b=rc,c=sc,d=Gf;return a.source=function(c){return arguments.length?(b=Aa(c),a):b},a.target=function(b){return arguments.length?(c=Aa(b),a):c},a.projection=function(b){return arguments.length?(d=b,a):d},a},Wf.svg.diagonal.radial=function(){var a=Wf.svg.diagonal(),b=Gf,c=a.projection;return a.projection=function(a){return arguments.length?c(Hf(b=a)):b},a},Wf.svg.symbol=function(){function a(a,d){return(Ai.get(b.call(this,a,d))||Kf)(c.call(this,a,d))}var b=Jf,c=If;return a.type=function(c){return arguments.length?(b=Aa(c),a):b},a.size=function(b){return arguments.length?(c=Aa(b),a):c},a};var Ai=Wf.map({circle:Kf,cross:function(a){var b=Math.sqrt(a/5)/2;return"M"+-3*b+","+-b+"H"+-b+"V"+-3*b+"H"+b+"V"+-b+"H"+3*b+"V"+b+"H"+b+"V"+3*b+"H"+-b+"V"+b+"H"+-3*b+"Z"},diamond:function(a){var b=Math.sqrt(a/(2*Ei)),c=b*Ei;return"M0,"+-b+"L"+c+",0 0,"+b+" "+-c+",0Z"},square:function(a){var b=Math.sqrt(a)/2;return"M"+-b+","+-b+"L"+b+","+-b+" "+b+","+b+" "+-b+","+b+"Z"},"triangle-down":function(a){var b=Math.sqrt(a/Di),c=b*Di/2;return"M0,"+c+"L"+b+","+-c+" "+-b+","+-c+"Z"},"triangle-up":function(a){var b=Math.sqrt(a/Di),c=b*Di/2;return"M0,"+-c+"L"+b+","+c+" "+-b+","+c+"Z"}});Wf.svg.symbolTypes=Ai.keys();var Bi,Ci,Di=Math.sqrt(3),Ei=Math.tan(30*Eg),Fi=[],Gi=0;Fi.call=sg.call,Fi.empty=sg.empty,Fi.node=sg.node,Fi.size=sg.size,Wf.transition=function(a){return arguments.length?Bi?a.transition():a:vg.transition()},Wf.transition.prototype=Fi,Fi.select=function(a){var b,c,d,e=this.id,f=[];a=w(a);for(var g=-1,h=this.length;++gf;f++){e.push(b=[]);for(var c=this[f],h=0,i=c.length;i>h;h++)(d=c[h])&&a.call(d,d.__data__,h,f)&&b.push(d)}return Lf(e,this.id)},Fi.tween=function(a,b){var c=this.id;return arguments.length<2?this.node().__transition__[c].tween.get(a):K(this,null==b?function(b){b.__transition__[c].tween.remove(a)}:function(d){d.__transition__[c].tween.set(a,b)})},Fi.attr=function(a,b){function c(){this.removeAttribute(h)}function d(){this.removeAttributeNS(h.space,h.local)}function e(a){return null==a?c:(a+="",function(){var b,c=this.getAttribute(h);return c!==a&&(b=g(c,a),function(a){this.setAttribute(h,b(a))})})}function f(a){return null==a?d:(a+="",function(){var b,c=this.getAttributeNS(h.space,h.local);return c!==a&&(b=g(c,a),function(a){this.setAttributeNS(h.space,h.local,b(a))})})}if(arguments.length<2){for(b in a)this.attr(b,a[b]);return this}var g="transform"==a?Nd:qd,h=Wf.ns.qualify(a);return Mf(this,"attr."+a,b,h.local?f:e)},Fi.attrTween=function(a,b){function c(a,c){var d=b.call(this,a,c,this.getAttribute(e));return d&&function(a){this.setAttribute(e,d(a))}}function d(a,c){var d=b.call(this,a,c,this.getAttributeNS(e.space,e.local));return d&&function(a){this.setAttributeNS(e.space,e.local,d(a))}}var e=Wf.ns.qualify(a);return this.tween("attr."+a,e.local?d:c)},Fi.style=function(a,b,c){function d(){this.style.removeProperty(a)}function e(b){return null==b?d:(b+="",function(){var d,e=_f.getComputedStyle(this,null).getPropertyValue(a);return e!==b&&(d=qd(e,b),function(b){this.style.setProperty(a,d(b),c)})})}var f=arguments.length;if(3>f){if("string"!=typeof a){2>f&&(b="");for(c in a)this.style(c,a[c],b);return this}c=""}return Mf(this,"style."+a,b,e)},Fi.styleTween=function(a,b,c){function d(d,e){var f=b.call(this,d,e,_f.getComputedStyle(this,null).getPropertyValue(a));return f&&function(b){this.style.setProperty(a,f(b),c)}}return arguments.length<3&&(c=""),this.tween("style."+a,d)},Fi.text=function(a){return Mf(this,"text",a,Nf)},Fi.remove=function(){return this.each("end.transition",function(){var a;this.__transition__.count<2&&(a=this.parentNode)&&a.removeChild(this)})},Fi.ease=function(a){var b=this.id;return arguments.length<1?this.node().__transition__[b].ease:("function"!=typeof a&&(a=Wf.ease.apply(Wf,arguments)),K(this,function(c){c.__transition__[b].ease=a}))},Fi.delay=function(a){var b=this.id;return arguments.length<1?this.node().__transition__[b].delay:K(this,"function"==typeof a?function(c,d,e){c.__transition__[b].delay=+a.call(c,c.__data__,d,e)}:(a=+a,function(c){c.__transition__[b].delay=a}))},Fi.duration=function(a){var b=this.id;return arguments.length<1?this.node().__transition__[b].duration:K(this,"function"==typeof a?function(c,d,e){c.__transition__[b].duration=Math.max(1,a.call(c,c.__data__,d,e))}:(a=Math.max(1,a),function(c){c.__transition__[b].duration=a}))},Fi.each=function(a,b){var c=this.id;if(arguments.length<2){var d=Ci,e=Bi;Bi=c,K(this,function(b,d,e){Ci=b.__transition__[c],a.call(b,b.__data__,d,e)}),Ci=d,Bi=e}else K(this,function(d){var e=d.__transition__[c];(e.event||(e.event=Wf.dispatch("start","end"))).on(a,b)});return this},Fi.transition=function(){for(var a,b,c,d,e=this.id,f=++Gi,g=[],h=0,i=this.length;i>h;h++){g.push(a=[]);for(var b=this[h],j=0,k=b.length;k>j;j++)(c=b[j])&&(d=Object.create(c.__transition__[e]),d.delay+=d.duration,Of(c,j,f,d)),a.push(c)}return Lf(g,f)},Wf.svg.axis=function(){function a(a){a.each(function(){var a,j=Wf.select(this),k=this.__chart__||c,l=this.__chart__=c.copy(),m=null==i?l.ticks?l.ticks.apply(l,h):l.domain():i,n=null==b?l.tickFormat?l.tickFormat.apply(l,h):Ba:b,o=j.selectAll(".tick").data(m,l),p=o.enter().insert("g",".domain").attr("class","tick").style("opacity",Cg),q=Wf.transition(o.exit()).style("opacity",Cg).remove(),r=Wf.transition(o.order()).style("opacity",1),s=Ke(l),t=j.selectAll(".domain").data([0]),u=(t.enter().append("path").attr("class","domain"),Wf.transition(t));p.append("line"),p.append("text");var v=p.select("line"),w=r.select("line"),x=o.select("text").text(n),y=p.select("text"),z=r.select("text");switch(d){case"bottom":a=Pf,v.attr("y2",e),y.attr("y",Math.max(e,0)+g),w.attr("x2",0).attr("y2",e),z.attr("x",0).attr("y",Math.max(e,0)+g),x.attr("dy",".71em").style("text-anchor","middle"),u.attr("d","M"+s[0]+","+f+"V0H"+s[1]+"V"+f);break;case"top":a=Pf,v.attr("y2",-e),y.attr("y",-(Math.max(e,0)+g)),w.attr("x2",0).attr("y2",-e),z.attr("x",0).attr("y",-(Math.max(e,0)+g)),x.attr("dy","0em").style("text-anchor","middle"),u.attr("d","M"+s[0]+","+-f+"V0H"+s[1]+"V"+-f);break;case"left":a=Qf,v.attr("x2",-e),y.attr("x",-(Math.max(e,0)+g)),w.attr("x2",-e).attr("y2",0),z.attr("x",-(Math.max(e,0)+g)).attr("y",0),x.attr("dy",".32em").style("text-anchor","end"),u.attr("d","M"+-f+","+s[0]+"H0V"+s[1]+"H"+-f);break;case"right":a=Qf,v.attr("x2",e),y.attr("x",Math.max(e,0)+g),w.attr("x2",e).attr("y2",0),z.attr("x",Math.max(e,0)+g).attr("y",0),x.attr("dy",".32em").style("text-anchor","start"),u.attr("d","M"+f+","+s[0]+"H0V"+s[1]+"H"+f)}if(l.rangeBand){var A=l,B=A.rangeBand()/2;k=l=function(a){return A(a)+B}}else k.rangeBand?k=l:q.call(a,l);p.call(a,k),r.call(a,l)})}var b,c=Wf.scale.linear(),d=Hi,e=6,f=6,g=3,h=[10],i=null;return a.scale=function(b){return arguments.length?(c=b,a):c},a.orient=function(b){return arguments.length?(d=b in Ii?b+"":Hi,a):d},a.ticks=function(){return arguments.length?(h=arguments,a):h},a.tickValues=function(b){return arguments.length?(i=b,a):i},a.tickFormat=function(c){return arguments.length?(b=c,a):b},a.tickSize=function(b){var c=arguments.length;return c?(e=+b,f=+arguments[c-1],a):e},a.innerTickSize=function(b){return arguments.length?(e=+b,a):e},a.outerTickSize=function(b){return arguments.length?(f=+b,a):f},a.tickPadding=function(b){return arguments.length?(g=+b,a):g},a.tickSubdivide=function(){return arguments.length&&a},a};var Hi="bottom",Ii={top:1,right:1,bottom:1,left:1};Wf.svg.brush=function(){function a(f){f.each(function(){var f=Wf.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",e).on("touchstart.brush",e),g=f.selectAll(".background").data([0]);g.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),f.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var h=f.selectAll(".resize").data(o,Ba);h.exit().remove(),h.enter().append("g").attr("class",function(a){return"resize "+a}).style("cursor",function(a){return Ji[a]}).append("rect").attr("x",function(a){return/[ew]$/.test(a)?-3:null}).attr("y",function(a){return/^[ns]/.test(a)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),h.style("display",a.empty()?"none":null);var k,l=Wf.transition(f),m=Wf.transition(g);i&&(k=Ke(i),m.attr("x",k[0]).attr("width",k[1]-k[0]),c(l)),j&&(k=Ke(j),m.attr("y",k[0]).attr("height",k[1]-k[0]),d(l)),b(l)})}function b(a){a.selectAll(".resize").attr("transform",function(a){return"translate("+k[+/e$/.test(a)]+","+l[+/^s/.test(a)]+")"})}function c(a){a.select(".extent").attr("x",k[0]),a.selectAll(".extent,.n>rect,.s>rect").attr("width",k[1]-k[0])}function d(a){a.select(".extent").attr("y",l[0]),a.selectAll(".extent,.e>rect,.w>rect").attr("height",l[1]-l[0])}function e(){function e(){32==Wf.event.keyCode&&(C||(t=null,E[0]-=k[1],E[1]-=l[1],C=2),s())}function o(){32==Wf.event.keyCode&&2==C&&(E[0]+=k[1],E[1]+=l[1],C=0,s())}function p(){var a=Wf.mouse(v),e=!1;u&&(a[0]+=u[0],a[1]+=u[1]),C||(Wf.event.altKey?(t||(t=[(k[0]+k[1])/2,(l[0]+l[1])/2]),E[0]=k[+(a[0]o?(e=d,d=o):e=o),p[0]!=d||p[1]!=e?(c?g=null:f=null,p[0]=d,p[1]=e,!0):void 0}function r(){p(),y.style("pointer-events","all").selectAll(".resize").style("display",a.empty()?"none":null),Wf.select("body").style("cursor",null),F.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),D(),x({type:"brushend"})}var t,u,v=this,w=Wf.select(Wf.event.target),x=h.of(v,arguments),y=Wf.select(v),z=w.datum(),A=!/^(n|s)$/.test(z)&&i,B=!/^(e|w)$/.test(z)&&j,C=w.classed("extent"),D=R(),E=Wf.mouse(v),F=Wf.select(_f).on("keydown.brush",e).on("keyup.brush",o);if(Wf.event.changedTouches?F.on("touchmove.brush",p).on("touchend.brush",r):F.on("mousemove.brush",p).on("mouseup.brush",r),y.interrupt().selectAll("*").interrupt(),C)E[0]=k[0]-E[0],E[1]=l[0]-E[1];else if(z){var G=+/w$/.test(z),H=+/^n/.test(z);u=[k[1-G]-E[0],l[1-H]-E[1]],E[0]=k[G],E[1]=l[H]}else Wf.event.altKey&&(t=E.slice());y.style("pointer-events","none").selectAll(".resize").style("display",null),Wf.select("body").style("cursor",w.style("cursor")),x({type:"brushstart"}),p()}var f,g,h=u(a,"brushstart","brush","brushend"),i=null,j=null,k=[0,0],l=[0,0],m=!0,n=!0,o=Ki[0];return a.event=function(a){a.each(function(){var a=h.of(this,arguments),b={x:k,y:l,i:f,j:g},c=this.__chart__||b;this.__chart__=b,Bi?Wf.select(this).transition().each("start.brush",function(){f=c.i,g=c.j,k=c.x,l=c.y,a({type:"brushstart"})}).tween("brush:brush",function(){var c=rd(k,b.x),d=rd(l,b.y);return f=g=null,function(e){k=b.x=c(e),l=b.y=d(e),a({type:"brush",mode:"resize"})}}).each("end.brush",function(){f=b.i,g=b.j,a({type:"brush",mode:"resize"}),a({type:"brushend"})}):(a({type:"brushstart"}),a({type:"brush",mode:"resize"}),a({type:"brushend"}))})},a.x=function(b){return arguments.length?(i=b,o=Ki[!i<<1|!j],a):i},a.y=function(b){return arguments.length?(j=b,o=Ki[!i<<1|!j],a):j},a.clamp=function(b){return arguments.length?(i&&j?(m=!!b[0],n=!!b[1]):i?m=!!b:j&&(n=!!b),a):i&&j?[m,n]:i?m:j?n:null},a.extent=function(b){var c,d,e,h,m;return arguments.length?(i&&(c=b[0],d=b[1],j&&(c=c[0],d=d[0]),f=[c,d],i.invert&&(c=i(c),d=i(d)),c>d&&(m=c,c=d,d=m),(c!=k[0]||d!=k[1])&&(k=[c,d])),j&&(e=b[0],h=b[1],i&&(e=e[1],h=h[1]),g=[e,h],j.invert&&(e=j(e),h=j(h)),e>h&&(m=e,e=h,h=m),(e!=l[0]||h!=l[1])&&(l=[e,h])),a):(i&&(f?(c=f[0],d=f[1]):(c=k[0],d=k[1],i.invert&&(c=i.invert(c),d=i.invert(d)),c>d&&(m=c,c=d,d=m))),j&&(g?(e=g[0],h=g[1]):(e=l[0],h=l[1],j.invert&&(e=j.invert(e),h=j.invert(h)),e>h&&(m=e,e=h,h=m))),i&&j?[[c,e],[d,h]]:i?[c,d]:j&&[e,h])},a.clear=function(){return a.empty()||(k=[0,0],l=[0,0],f=g=null),a},a.empty=function(){return!!i&&k[0]==k[1]||!!j&&l[0]==l[1]},Wf.rebind(a,h,"on")};var Ji={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ki=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Li=ch.format=ih.timeFormat,Mi=Li.utc,Ni=Mi("%Y-%m-%dT%H:%M:%S.%LZ");Li.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Rf:Ni,Rf.parse=function(a){var b=new Date(a);return isNaN(b)?null:b},Rf.toString=Ni.toString,ch.second=Na(function(a){return new dh(1e3*Math.floor(a/1e3))},function(a,b){a.setTime(a.getTime()+1e3*Math.floor(b))},function(a){return a.getSeconds()}),ch.seconds=ch.second.range,ch.seconds.utc=ch.second.utc.range,ch.minute=Na(function(a){return new dh(6e4*Math.floor(a/6e4))},function(a,b){a.setTime(a.getTime()+6e4*Math.floor(b))},function(a){return a.getMinutes()}),ch.minutes=ch.minute.range,ch.minutes.utc=ch.minute.utc.range,ch.hour=Na(function(a){var b=a.getTimezoneOffset()/60;return new dh(36e5*(Math.floor(a/36e5-b)+b))},function(a,b){a.setTime(a.getTime()+36e5*Math.floor(b))},function(a){return a.getHours()}),ch.hours=ch.hour.range,ch.hours.utc=ch.hour.utc.range,ch.month=Na(function(a){return a=ch.day(a),a.setDate(1),a},function(a,b){a.setMonth(a.getMonth()+b)},function(a){return a.getMonth()}),ch.months=ch.month.range,ch.months.utc=ch.month.utc.range;var Oi=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Pi=[[ch.second,1],[ch.second,5],[ch.second,15],[ch.second,30],[ch.minute,1],[ch.minute,5],[ch.minute,15],[ch.minute,30],[ch.hour,1],[ch.hour,3],[ch.hour,6],[ch.hour,12],[ch.day,1],[ch.day,2],[ch.week,1],[ch.month,1],[ch.month,3],[ch.year,1]],Qi=Li.multi([[".%L",function(a){return a.getMilliseconds()}],[":%S",function(a){return a.getSeconds()}],["%I:%M",function(a){return a.getMinutes()}],["%I %p",function(a){return a.getHours()}],["%a %d",function(a){return a.getDay()&&1!=a.getDate()}],["%b %d",function(a){return 1!=a.getDate()}],["%B",function(a){return a.getMonth()}],["%Y",Bb]]),Ri={range:function(a,b,c){return Wf.range(Math.ceil(a/c)*c,+b,c).map(Tf)},floor:Ba,ceil:Ba};Pi.year=ch.year,ch.scale=function(){return Sf(Wf.scale.linear(),Pi,Qi)};var Si=Pi.map(function(a){return[a[0].utc,a[1]]}),Ti=Mi.multi([[".%L",function(a){return a.getUTCMilliseconds()}],[":%S",function(a){return a.getUTCSeconds()}],["%I:%M",function(a){return a.getUTCMinutes()}],["%I %p",function(a){return a.getUTCHours()}],["%a %d",function(a){return a.getUTCDay()&&1!=a.getUTCDate()}],["%b %d",function(a){return 1!=a.getUTCDate()}],["%B",function(a){return a.getUTCMonth()}],["%Y",Bb]]);return Si.year=ch.year.utc,ch.scale.utc=function(){return Sf(Wf.scale.linear(),Si,Ti)},Wf.text=Ca(function(a){return a.responseText}),Wf.json=function(a,b){return Da(a,"application/json",Uf,b)},Wf.html=function(a,b){return Da(a,"text/html",Vf,b)},Wf.xml=Ca(function(a){return a.responseXML}),Wf}(); +!function(){function a(a){return a&&(a.ownerDocument||a.document||a).documentElement}function b(a){return a&&(a.ownerDocument&&a.ownerDocument.defaultView||a.document&&a||a.defaultView)}function c(a,b){return b>a?-1:a>b?1:a>=b?0:0/0}function d(a){return null===a?0/0:+a}function e(a){return!isNaN(a)}function f(a){return{left:function(b,c,d,e){for(arguments.length<3&&(d=0),arguments.length<4&&(e=b.length);e>d;){var f=d+e>>>1;a(b[f],c)<0?d=f+1:e=f}return d},right:function(b,c,d,e){for(arguments.length<3&&(d=0),arguments.length<4&&(e=b.length);e>d;){var f=d+e>>>1;a(b[f],c)>0?e=f:d=f+1}return d}}}function g(a){return a.length}function h(a){for(var b=1;a*b%1;)b*=10;return b}function i(a,b){for(var c in b)Object.defineProperty(a.prototype,c,{value:b[c],enumerable:!1})}function j(){this._=Object.create(null)}function k(a){return(a+="")===og||a[0]===pg?pg+a:a}function l(a){return(a+="")[0]===pg?a.slice(1):a}function m(a){return k(a)in this._}function n(a){return(a=k(a))in this._&&delete this._[a]}function o(){var a=[];for(var b in this._)a.push(l(b));return a}function p(){var a=0;for(var b in this._)++a;return a}function q(){for(var a in this._)return!1;return!0}function r(){this._=Object.create(null)}function s(a){return a}function t(a,b,c){return function(){var d=c.apply(b,arguments);return d===b?a:d}}function u(a,b){if(b in a)return b;b=b.charAt(0).toUpperCase()+b.slice(1);for(var c=0,d=qg.length;d>c;++c){var e=qg[c]+b;if(e in a)return e}}function v(){}function w(){}function x(a){function b(){for(var b,d=c,e=-1,f=d.length;++ec;c++)for(var e,f=a[c],g=0,h=f.length;h>g;g++)(e=f[g])&&b(e,g,c);return a}function S(a){return sg(a,yg),a}function T(a){var b,c;return function(d,e,f){var g,h=a[f].update,i=h.length;for(f!=c&&(c=f,b=0),e>=b&&(b=e+1);!(g=h[b])&&++b0&&(a=a.slice(0,h));var j=zg.get(a);return j&&(a=j,i=W),h?b?e:d:b?v:f}function V(a,b){return function(c){var d=bg.event;bg.event=c,b[0]=this.__data__;try{a.apply(this,b)}finally{bg.event=d}}}function W(a,b){var c=V(a,b);return function(a){var b=this,d=a.relatedTarget;d&&(d===b||8&d.compareDocumentPosition(b))||c.call(b,a)}}function X(c){var d=".dragsuppress-"+ ++Bg,e="click"+d,f=bg.select(b(c)).on("touchmove"+d,y).on("dragstart"+d,y).on("selectstart"+d,y);if(null==Ag&&(Ag="onselectstart"in c?!1:u(c.style,"userSelect")),Ag){var g=a(c).style,h=g[Ag];g[Ag]="none"}return function(a){if(f.on(d,null),Ag&&(g[Ag]=h),a){var b=function(){f.on(e,null)};f.on(e,function(){y(),b()},!0),setTimeout(b,0)}}}function Y(a,c){c.changedTouches&&(c=c.changedTouches[0]);var d=a.ownerSVGElement||a;if(d.createSVGPoint){var e=d.createSVGPoint();if(0>Cg){var f=b(a);if(f.scrollX||f.scrollY){d=bg.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var g=d[0][0].getScreenCTM();Cg=!(g.f||g.e),d.remove()}}return Cg?(e.x=c.pageX,e.y=c.pageY):(e.x=c.clientX,e.y=c.clientY),e=e.matrixTransform(a.getScreenCTM().inverse()),[e.x,e.y]}var h=a.getBoundingClientRect();return[c.clientX-h.left-a.clientLeft,c.clientY-h.top-a.clientTop]}function Z(){return bg.event.changedTouches[0].identifier}function $(a){return a>0?1:0>a?-1:0}function _(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])}function aa(a){return a>1?0:-1>a?Fg:Math.acos(a)}function ba(a){return a>1?Ig:-1>a?-Ig:Math.asin(a)}function ca(a){return((a=Math.exp(a))-1/a)/2}function da(a){return((a=Math.exp(a))+1/a)/2}function ea(a){return((a=Math.exp(2*a))-1)/(a+1)}function fa(a){return(a=Math.sin(a/2))*a}function ga(){}function ha(a,b,c){return this instanceof ha?(this.h=+a,this.s=+b,void(this.l=+c)):arguments.length<2?a instanceof ha?new ha(a.h,a.s,a.l):va(""+a,wa,ha):new ha(a,b,c)}function ia(a,b,c){function d(a){return a>360?a-=360:0>a&&(a+=360),60>a?f+(g-f)*a/60:180>a?g:240>a?f+(g-f)*(240-a)/60:f}function e(a){return Math.round(255*d(a))}var f,g;return a=isNaN(a)?0:(a%=360)<0?a+360:a,b=isNaN(b)?0:0>b?0:b>1?1:b,c=0>c?0:c>1?1:c,g=.5>=c?c*(1+b):c+b-c*b,f=2*c-g,new ra(e(a+120),e(a),e(a-120))}function ja(a,b,c){return this instanceof ja?(this.h=+a,this.c=+b,void(this.l=+c)):arguments.length<2?a instanceof ja?new ja(a.h,a.c,a.l):a instanceof la?na(a.l,a.a,a.b):na((a=xa((a=bg.rgb(a)).r,a.g,a.b)).l,a.a,a.b):new ja(a,b,c)}function ka(a,b,c){return isNaN(a)&&(a=0),isNaN(b)&&(b=0),new la(c,Math.cos(a*=Jg)*b,Math.sin(a)*b)}function la(a,b,c){return this instanceof la?(this.l=+a,this.a=+b,void(this.b=+c)):arguments.length<2?a instanceof la?new la(a.l,a.a,a.b):a instanceof ja?ka(a.h,a.c,a.l):xa((a=ra(a)).r,a.g,a.b):new la(a,b,c)}function ma(a,b,c){var d=(a+16)/116,e=d+b/500,f=d-c/200;return e=oa(e)*Ug,d=oa(d)*Vg,f=oa(f)*Wg,new ra(qa(3.2404542*e-1.5371385*d-.4985314*f),qa(-.969266*e+1.8760108*d+.041556*f),qa(.0556434*e-.2040259*d+1.0572252*f))}function na(a,b,c){return a>0?new ja(Math.atan2(c,b)*Kg,Math.sqrt(b*b+c*c),a):new ja(0/0,0/0,a)}function oa(a){return a>.206893034?a*a*a:(a-4/29)/7.787037}function pa(a){return a>.008856?Math.pow(a,1/3):7.787037*a+4/29}function qa(a){return Math.round(255*(.00304>=a?12.92*a:1.055*Math.pow(a,1/2.4)-.055))}function ra(a,b,c){return this instanceof ra?(this.r=~~a,this.g=~~b,void(this.b=~~c)):arguments.length<2?a instanceof ra?new ra(a.r,a.g,a.b):va(""+a,ra,ia):new ra(a,b,c)}function sa(a){return new ra(a>>16,a>>8&255,255&a)}function ta(a){return sa(a)+""}function ua(a){return 16>a?"0"+Math.max(0,a).toString(16):Math.min(255,a).toString(16)}function va(a,b,c){var d,e,f,g=0,h=0,i=0;if(d=/([a-z]+)\((.*)\)/i.exec(a))switch(e=d[2].split(","),d[1]){case"hsl":return c(parseFloat(e[0]),parseFloat(e[1])/100,parseFloat(e[2])/100);case"rgb":return b(za(e[0]),za(e[1]),za(e[2]))}return(f=Zg.get(a.toLowerCase()))?b(f.r,f.g,f.b):(null==a||"#"!==a.charAt(0)||isNaN(f=parseInt(a.slice(1),16))||(4===a.length?(g=(3840&f)>>4,g=g>>4|g,h=240&f,h=h>>4|h,i=15&f,i=i<<4|i):7===a.length&&(g=(16711680&f)>>16,h=(65280&f)>>8,i=255&f)),b(g,h,i))}function wa(a,b,c){var d,e,f=Math.min(a/=255,b/=255,c/=255),g=Math.max(a,b,c),h=g-f,i=(g+f)/2;return h?(e=.5>i?h/(g+f):h/(2-g-f),d=a==g?(b-c)/h+(c>b?6:0):b==g?(c-a)/h+2:(a-b)/h+4,d*=60):(d=0/0,e=i>0&&1>i?0:d),new ha(d,e,i)}function xa(a,b,c){a=ya(a),b=ya(b),c=ya(c);var d=pa((.4124564*a+.3575761*b+.1804375*c)/Ug),e=pa((.2126729*a+.7151522*b+.072175*c)/Vg),f=pa((.0193339*a+.119192*b+.9503041*c)/Wg);return la(116*e-16,500*(d-e),200*(e-f))}function ya(a){return(a/=255)<=.04045?a/12.92:Math.pow((a+.055)/1.055,2.4)}function za(a){var b=parseFloat(a);return"%"===a.charAt(a.length-1)?Math.round(2.55*b):b}function Aa(a){return"function"==typeof a?a:function(){return a}}function Ba(a){return function(b,c,d){return 2===arguments.length&&"function"==typeof c&&(d=c,c=null),Ca(b,c,a,d)}}function Ca(a,b,c,d){function e(){var a,b=i.status;if(!b&&Ea(i)||b>=200&&300>b||304===b){try{a=c.call(f,i)}catch(d){return void g.error.call(f,d)}g.load.call(f,a)}else g.error.call(f,i)}var f={},g=bg.dispatch("beforesend","progress","load","error"),h={},i=new XMLHttpRequest,j=null;return!this.XDomainRequest||"withCredentials"in i||!/^(http(s)?:)?\/\//.test(a)||(i=new XDomainRequest),"onload"in i?i.onload=i.onerror=e:i.onreadystatechange=function(){i.readyState>3&&e()},i.onprogress=function(a){var b=bg.event;bg.event=a;try{g.progress.call(f,i)}finally{bg.event=b}},f.header=function(a,b){return a=(a+"").toLowerCase(),arguments.length<2?h[a]:(null==b?delete h[a]:h[a]=b+"",f)},f.mimeType=function(a){return arguments.length?(b=null==a?null:a+"",f):b},f.responseType=function(a){return arguments.length?(j=a,f):j},f.response=function(a){return c=a,f},["get","post"].forEach(function(a){f[a]=function(){return f.send.apply(f,[a].concat(dg(arguments)))}}),f.send=function(c,d,e){if(2===arguments.length&&"function"==typeof d&&(e=d,d=null),i.open(c,a,!0),null==b||"accept"in h||(h.accept=b+",*/*"),i.setRequestHeader)for(var k in h)i.setRequestHeader(k,h[k]);return null!=b&&i.overrideMimeType&&i.overrideMimeType(b),null!=j&&(i.responseType=j),null!=e&&f.on("error",e).on("load",function(a){e(null,a)}),g.beforesend.call(f,i),i.send(null==d?null:d),f},f.abort=function(){return i.abort(),f},bg.rebind(f,g,"on"),null==d?f:f.get(Da(d))}function Da(a){return 1===a.length?function(b,c){a(null==b?c:null)}:a}function Ea(a){var b=a.responseType;return b&&"text"!==b?a.response:a.responseText}function Fa(){var a=Ga(),b=Ha()-a;b>24?(isFinite(b)&&(clearTimeout(bh),bh=setTimeout(Fa,b)),ah=0):(ah=1,dh(Fa))}function Ga(){var a=Date.now();for(ch=$g;ch;)a>=ch.t&&(ch.f=ch.c(a-ch.t)),ch=ch.n;return a}function Ha(){for(var a,b=$g,c=1/0;b;)b.f?b=a?a.n=b.n:$g=b.n:(b.t8?function(a){return a/c}:function(a){return a*c},symbol:a}}function Ka(a){var b=a.decimal,c=a.thousands,d=a.grouping,e=a.currency,f=d&&c?function(a,b){for(var e=a.length,f=[],g=0,h=d[0],i=0;e>0&&h>0&&(i+h+1>b&&(h=Math.max(1,b-i)),f.push(a.substring(e-=h,e+h)),!((i+=h+1)>b));)h=d[g=(g+1)%d.length];return f.reverse().join(c)}:s;return function(a){var c=fh.exec(a),d=c[1]||" ",g=c[2]||">",h=c[3]||"-",i=c[4]||"",j=c[5],k=+c[6],l=c[7],m=c[8],n=c[9],o=1,p="",q="",r=!1,s=!0;switch(m&&(m=+m.substring(1)),(j||"0"===d&&"="===g)&&(j=d="0",g="="),n){case"n":l=!0,n="g";break;case"%":o=100,q="%",n="f";break;case"p":o=100,q="%",n="r";break;case"b":case"o":case"x":case"X":"#"===i&&(p="0"+n.toLowerCase());case"c":s=!1;case"d":r=!0,m=0;break;case"s":o=-1,n="r"}"$"===i&&(p=e[0],q=e[1]),"r"!=n||m||(n="g"),null!=m&&("g"==n?m=Math.max(1,Math.min(21,m)):("e"==n||"f"==n)&&(m=Math.max(0,Math.min(20,m)))),n=gh.get(n)||La;var t=j&&l;return function(a){var c=q;if(r&&a%1)return"";var e=0>a||0===a&&0>1/a?(a=-a,"-"):"-"===h?"":h;if(0>o){var i=bg.formatPrefix(a,m);a=i.scale(a),c=i.symbol+q}else a*=o;a=n(a,m);var u,v,w=a.lastIndexOf(".");if(0>w){var x=s?a.lastIndexOf("e"):-1;0>x?(u=a,v=""):(u=a.substring(0,x),v=a.substring(x))}else u=a.substring(0,w),v=b+a.substring(w+1);!j&&l&&(u=f(u,1/0));var y=p.length+u.length+v.length+(t?0:e.length),z=k>y?new Array(y=k-y+1).join(d):"";return t&&(u=f(z+u,z.length?k-v.length:1/0)),e+=p,a=u+v,("<"===g?e+a+z:">"===g?z+e+a:"^"===g?z.substring(0,y>>=1)+e+a+z.substring(y):e+(t?a:z+a))+c}}}function La(a){return a+""}function Ma(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Na(a,b,c){function d(b){var c=a(b),d=f(c,1);return d-b>b-c?c:d}function e(c){return b(c=a(new ih(c-1)),1),c}function f(a,c){return b(a=new ih(+a),c),a}function g(a,d,f){var g=e(a),h=[];if(f>1)for(;d>g;)c(g)%f||h.push(new Date(+g)),b(g,1);else for(;d>g;)h.push(new Date(+g)),b(g,1);return h}function h(a,b,c){try{ih=Ma;var d=new Ma;return d._=a,g(d,b,c)}finally{ih=Date}}a.floor=a,a.round=d,a.ceil=e,a.offset=f,a.range=g;var i=a.utc=Oa(a);return i.floor=i,i.round=Oa(d),i.ceil=Oa(e),i.offset=Oa(f),i.range=h,a}function Oa(a){return function(b,c){try{ih=Ma;var d=new Ma;return d._=b,a(d,c)._}finally{ih=Date}}}function Pa(a){function b(a){function b(b){for(var c,e,f,g=[],h=-1,i=0;++hh;){if(d>=j)return-1;if(e=b.charCodeAt(h++),37===e){if(g=b.charAt(h++),f=D[g in kh?b.charAt(h++):g],!f||(d=f(a,c,d))<0)return-1}else if(e!=c.charCodeAt(d++))return-1}return d}function d(a,b,c){w.lastIndex=0;var d=w.exec(b.slice(c));return d?(a.w=x.get(d[0].toLowerCase()),c+d[0].length):-1}function e(a,b,c){u.lastIndex=0;var d=u.exec(b.slice(c));return d?(a.w=v.get(d[0].toLowerCase()),c+d[0].length):-1}function f(a,b,c){A.lastIndex=0;var d=A.exec(b.slice(c));return d?(a.m=B.get(d[0].toLowerCase()),c+d[0].length):-1}function g(a,b,c){y.lastIndex=0;var d=y.exec(b.slice(c));return d?(a.m=z.get(d[0].toLowerCase()),c+d[0].length):-1}function h(a,b,d){return c(a,C.c.toString(),b,d)}function i(a,b,d){return c(a,C.x.toString(),b,d)}function j(a,b,d){return c(a,C.X.toString(),b,d)}function k(a,b,c){var d=t.get(b.slice(c,c+=2).toLowerCase());return null==d?-1:(a.p=d,c)}var l=a.dateTime,m=a.date,n=a.time,o=a.periods,p=a.days,q=a.shortDays,r=a.months,s=a.shortMonths;b.utc=function(a){function c(a){try{ih=Ma;var b=new ih;return b._=a,d(b)}finally{ih=Date}}var d=b(a);return c.parse=function(a){try{ih=Ma;var b=d.parse(a);return b&&b._}finally{ih=Date}},c.toString=d.toString,c},b.multi=b.utc.multi=hb;var t=bg.map(),u=Ra(p),v=Sa(p),w=Ra(q),x=Sa(q),y=Ra(r),z=Sa(r),A=Ra(s),B=Sa(s);o.forEach(function(a,b){t.set(a.toLowerCase(),b)});var C={a:function(a){return q[a.getDay()]},A:function(a){return p[a.getDay()]},b:function(a){return s[a.getMonth()]},B:function(a){return r[a.getMonth()]},c:b(l),d:function(a,b){return Qa(a.getDate(),b,2)},e:function(a,b){return Qa(a.getDate(),b,2)},H:function(a,b){return Qa(a.getHours(),b,2)},I:function(a,b){return Qa(a.getHours()%12||12,b,2)},j:function(a,b){return Qa(1+hh.dayOfYear(a),b,3)},L:function(a,b){return Qa(a.getMilliseconds(),b,3)},m:function(a,b){return Qa(a.getMonth()+1,b,2)},M:function(a,b){return Qa(a.getMinutes(),b,2)},p:function(a){return o[+(a.getHours()>=12)]},S:function(a,b){return Qa(a.getSeconds(),b,2)},U:function(a,b){return Qa(hh.sundayOfYear(a),b,2)},w:function(a){return a.getDay()},W:function(a,b){return Qa(hh.mondayOfYear(a),b,2)},x:b(m),X:b(n),y:function(a,b){return Qa(a.getFullYear()%100,b,2)},Y:function(a,b){return Qa(a.getFullYear()%1e4,b,4)},Z:fb,"%":function(){return"%"}},D={a:d,A:e,b:f,B:g,c:h,d:_a,e:_a,H:bb,I:bb,j:ab,L:eb,m:$a,M:cb,p:k,S:db,U:Ua,w:Ta,W:Va,x:i,X:j,y:Xa,Y:Wa,Z:Ya,"%":gb};return b}function Qa(a,b,c){var d=0>a?"-":"",e=(d?-a:a)+"",f=e.length;return d+(c>f?new Array(c-f+1).join(b)+e:e)}function Ra(a){return new RegExp("^(?:"+a.map(bg.requote).join("|")+")","i")}function Sa(a){for(var b=new j,c=-1,d=a.length;++c68?1900:2e3)}function $a(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.m=d[0]-1,c+d[0].length):-1}function _a(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.d=+d[0],c+d[0].length):-1}function ab(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+3));return d?(a.j=+d[0],c+d[0].length):-1}function bb(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.H=+d[0],c+d[0].length):-1}function cb(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.M=+d[0],c+d[0].length):-1}function db(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.S=+d[0],c+d[0].length):-1}function eb(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+3));return d?(a.L=+d[0],c+d[0].length):-1}function fb(a){var b=a.getTimezoneOffset(),c=b>0?"-":"+",d=ng(b)/60|0,e=ng(b)%60;return c+Qa(d,"0",2)+Qa(e,"0",2)}function gb(a,b,c){mh.lastIndex=0;var d=mh.exec(b.slice(c,c+1));return d?c+d[0].length:-1}function hb(a){for(var b=a.length,c=-1;++c=0?1:-1,h=g*c,i=Math.cos(b),j=Math.sin(b),k=f*j,l=e*i+k*Math.cos(h),m=k*g*Math.sin(h);sh.add(Math.atan2(m,l)),d=a,e=i,f=j}var b,c,d,e,f;th.point=function(g,h){th.point=a,d=(b=g)*Jg,e=Math.cos(h=(c=h)*Jg/2+Fg/4),f=Math.sin(h)},th.lineEnd=function(){a(b,c)}}function ob(a){var b=a[0],c=a[1],d=Math.cos(c);return[d*Math.cos(b),d*Math.sin(b),Math.sin(c)]}function pb(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function qb(a,b){return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]}function rb(a,b){a[0]+=b[0],a[1]+=b[1],a[2]+=b[2]}function sb(a,b){return[a[0]*b,a[1]*b,a[2]*b]}function tb(a){var b=Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);a[0]/=b,a[1]/=b,a[2]/=b}function ub(a){return[Math.atan2(a[1],a[0]),ba(a[2])]}function vb(a,b){return ng(a[0]-b[0])h;++h)e.point((c=a[h])[0],c[1]);return void e.lineEnd()}var i=new Fb(c,a,null,!0),j=new Fb(c,null,i,!1);i.o=j,f.push(i),g.push(j),i=new Fb(d,a,null,!1),j=new Fb(d,null,i,!0),i.o=j,f.push(i),g.push(j)}}),g.sort(b),Eb(f),Eb(g),f.length){for(var h=0,i=c,j=g.length;j>h;++h)g[h].e=i=!i;for(var k,l,m=f[0];;){for(var n=m,o=!0;n.v;)if((n=n.n)===m)return;k=n.z,e.lineStart();do{if(n.v=n.o.v=!0,n.e){if(o)for(var h=0,j=k.length;j>h;++h)e.point((l=k[h])[0],l[1]);else d(n.x,n.n.x,1,e);n=n.n}else{if(o){k=n.p.z;for(var h=k.length-1;h>=0;--h)e.point((l=k[h])[0],l[1])}else d(n.x,n.p.x,-1,e);n=n.p}n=n.o,k=n.z,o=!o}while(!n.v);e.lineEnd()}}}function Eb(a){if(b=a.length){for(var b,c,d=0,e=a[0];++d0){for(v||(f.polygonStart(),v=!0),f.lineStart();++g1&&2&b&&c.push(c.pop().concat(c.shift())),n.push(c.filter(Hb))}var n,o,p,q=b(f),r=e.invert(d[0],d[1]),s={point:g,lineStart:i,lineEnd:j,polygonStart:function(){s.point=k,s.lineStart=l,s.lineEnd=m,n=[],o=[]},polygonEnd:function(){s.point=g,s.lineStart=i,s.lineEnd=j,n=bg.merge(n);var a=Nb(r,o);n.length?(v||(f.polygonStart(),v=!0),Db(n,Jb,a,c,f)):a&&(v||(f.polygonStart(),v=!0),f.lineStart(),c(null,null,1,f),f.lineEnd()),v&&(f.polygonEnd(),v=!1),n=o=null},sphere:function(){f.polygonStart(),f.lineStart(),c(null,null,1,f),f.lineEnd(),f.polygonEnd()}},t=Ib(),u=b(t),v=!1;return s}}function Hb(a){return a.length>1}function Ib(){var a,b=[];return{lineStart:function(){b.push(a=[])},point:function(b,c){a.push([b,c])},lineEnd:v,buffer:function(){var c=b;return b=[],a=null,c},rejoin:function(){b.length>1&&b.push(b.pop().concat(b.shift()))}}}function Jb(a,b){return((a=a.x)[0]<0?a[1]-Ig-Dg:Ig-a[1])-((b=b.x)[0]<0?b[1]-Ig-Dg:Ig-b[1])}function Kb(a){var b,c=0/0,d=0/0,e=0/0;return{lineStart:function(){a.lineStart(),b=1},point:function(f,g){var h=f>0?Fg:-Fg,i=ng(f-c);ng(i-Fg)0?Ig:-Ig),a.point(e,d),a.lineEnd(),a.lineStart(),a.point(h,d),a.point(f,d),b=0):e!==h&&i>=Fg&&(ng(c-e)Dg?Math.atan((Math.sin(b)*(f=Math.cos(d))*Math.sin(c)-Math.sin(d)*(e=Math.cos(b))*Math.sin(a))/(e*f*g)):(b+d)/2}function Mb(a,b,c,d){var e;if(null==a)e=c*Ig,d.point(-Fg,e),d.point(0,e),d.point(Fg,e),d.point(Fg,0),d.point(Fg,-e),d.point(0,-e),d.point(-Fg,-e),d.point(-Fg,0),d.point(-Fg,e);else if(ng(a[0]-b[0])>Dg){var f=a[0]h;++h){var j=b[h],k=j.length;if(k)for(var l=j[0],m=l[0],n=l[1]/2+Fg/4,o=Math.sin(n),p=Math.cos(n),q=1;;){q===k&&(q=0),a=j[q];var r=a[0],s=a[1]/2+Fg/4,t=Math.sin(s),u=Math.cos(s),v=r-m,w=v>=0?1:-1,x=w*v,y=x>Fg,z=o*t;if(sh.add(Math.atan2(z*w*Math.sin(x),p*u+z*Math.cos(x))),f+=y?v+w*Gg:v,y^m>=c^r>=c){var A=qb(ob(l),ob(a));tb(A);var B=qb(e,A);tb(B);var C=(y^v>=0?-1:1)*ba(B[2]);(d>C||d===C&&(A[0]||A[1]))&&(g+=y^v>=0?1:-1)}if(!q++)break;m=r,o=t,p=u,l=a}}return(-Dg>f||Dg>f&&0>sh)^1&g}function Ob(a){function b(a,b){return Math.cos(a)*Math.cos(b)>f}function c(a){var c,f,i,j,k;return{lineStart:function(){j=i=!1,k=1},point:function(l,m){var n,o=[l,m],p=b(l,m),q=g?p?0:e(l,m):p?e(l+(0>l?Fg:-Fg),m):0;if(!c&&(j=i=p)&&a.lineStart(),p!==i&&(n=d(c,o),(vb(c,n)||vb(o,n))&&(o[0]+=Dg,o[1]+=Dg,p=b(o[0],o[1]))),p!==i)k=0,p?(a.lineStart(),n=d(o,c),a.point(n[0],n[1])):(n=d(c,o),a.point(n[0],n[1]),a.lineEnd()),c=n;else if(h&&c&&g^p){var r;q&f||!(r=d(o,c,!0))||(k=0,g?(a.lineStart(),a.point(r[0][0],r[0][1]),a.point(r[1][0],r[1][1]),a.lineEnd()):(a.point(r[1][0],r[1][1]),a.lineEnd(),a.lineStart(),a.point(r[0][0],r[0][1])))}!p||c&&vb(c,o)||a.point(o[0],o[1]),c=o,i=p,f=q},lineEnd:function(){i&&a.lineEnd(),c=null},clean:function(){return k|(j&&i)<<1}}}function d(a,b,c){var d=ob(a),e=ob(b),g=[1,0,0],h=qb(d,e),i=pb(h,h),j=h[0],k=i-j*j;if(!k)return!c&&a;var l=f*i/k,m=-f*j/k,n=qb(g,h),o=sb(g,l),p=sb(h,m);rb(o,p);var q=n,r=pb(o,q),s=pb(q,q),t=r*r-s*(pb(o,o)-1);if(!(0>t)){var u=Math.sqrt(t),v=sb(q,(-r-u)/s);if(rb(v,o),v=ub(v),!c)return v;var w,x=a[0],y=b[0],z=a[1],A=b[1];x>y&&(w=x,x=y,y=w);var B=y-x,C=ng(B-Fg)B;if(!C&&z>A&&(w=z,z=A,A=w),D?C?z+A>0^v[1]<(ng(v[0]-x)Fg^(x<=v[0]&&v[0]<=y)){var E=sb(q,(-r+u)/s);return rb(E,o),[v,ub(E)]}}}function e(b,c){var d=g?a:Fg-a,e=0;return-d>b?e|=1:b>d&&(e|=2),-d>c?e|=4:c>d&&(e|=8),e}var f=Math.cos(a),g=f>0,h=ng(f)>Dg,i=nc(a,6*Jg);return Gb(b,c,i,g?[0,-a]:[-Fg,a-Fg])}function Pb(a,b,c,d){return function(e){var f,g=e.a,h=e.b,i=g.x,j=g.y,k=h.x,l=h.y,m=0,n=1,o=k-i,p=l-j;if(f=a-i,o||!(f>0)){if(f/=o,0>o){if(m>f)return;n>f&&(n=f)}else if(o>0){if(f>n)return;f>m&&(m=f)}if(f=c-i,o||!(0>f)){if(f/=o,0>o){if(f>n)return;f>m&&(m=f)}else if(o>0){if(m>f)return;n>f&&(n=f)}if(f=b-j,p||!(f>0)){if(f/=p,0>p){if(m>f)return;n>f&&(n=f)}else if(p>0){if(f>n)return;f>m&&(m=f)}if(f=d-j,p||!(0>f)){if(f/=p,0>p){if(f>n)return;f>m&&(m=f)}else if(p>0){if(m>f)return;n>f&&(n=f)}return m>0&&(e.a={x:i+m*o,y:j+m*p}),1>n&&(e.b={x:i+n*o,y:j+n*p}),e}}}}}}function Qb(a,b,c,d){function e(d,e){return ng(d[0]-a)0?0:3:ng(d[0]-c)0?2:1:ng(d[1]-b)0?1:0:e>0?3:2}function f(a,b){return g(a.x,b.x)}function g(a,b){var c=e(a,1),d=e(b,1);return c!==d?c-d:0===c?b[1]-a[1]:1===c?a[0]-b[0]:2===c?a[1]-b[1]:b[0]-a[0]}return function(h){function i(a){for(var b=0,c=q.length,d=a[1],e=0;c>e;++e)for(var f,g=1,h=q[e],i=h.length,j=h[0];i>g;++g)f=h[g],j[1]<=d?f[1]>d&&_(j,f,a)>0&&++b:f[1]<=d&&_(j,f,a)<0&&--b,j=f;return 0!==b}function j(f,h,i,j){var k=0,l=0;if(null==f||(k=e(f,i))!==(l=e(h,i))||g(f,h)<0^i>0){do j.point(0===k||3===k?a:c,k>1?d:b);while((k=(k+i+4)%4)!==l)}else j.point(h[0],h[1])}function k(e,f){return e>=a&&c>=e&&f>=b&&d>=f}function l(a,b){k(a,b)&&h.point(a,b)}function m(){D.point=o,q&&q.push(r=[]),y=!0,x=!1,v=w=0/0}function n(){p&&(o(s,t),u&&x&&B.rejoin(),p.push(B.buffer())),D.point=l,x&&h.lineEnd()}function o(a,b){a=Math.max(-Hh,Math.min(Hh,a)),b=Math.max(-Hh,Math.min(Hh,b));var c=k(a,b);if(q&&r.push([a,b]),y)s=a,t=b,u=c,y=!1,c&&(h.lineStart(),h.point(a,b));else if(c&&x)h.point(a,b);else{var d={a:{x:v,y:w},b:{x:a,y:b}};C(d)?(x||(h.lineStart(),h.point(d.a.x,d.a.y)),h.point(d.b.x,d.b.y),c||h.lineEnd(),z=!1):c&&(h.lineStart(),h.point(a,b),z=!1)}v=a,w=b,x=c}var p,q,r,s,t,u,v,w,x,y,z,A=h,B=Ib(),C=Pb(a,b,c,d),D={point:l,lineStart:m,lineEnd:n,polygonStart:function(){h=B,p=[],q=[],z=!0},polygonEnd:function(){h=A,p=bg.merge(p);var b=i([a,d]),c=z&&b,e=p.length;(c||e)&&(h.polygonStart(),c&&(h.lineStart(),j(null,null,1,h),h.lineEnd()),e&&Db(p,f,b,j,h),h.polygonEnd()),p=q=r=null}};return D}}function Rb(a){var b=0,c=Fg/3,d=fc(a),e=d(b,c);return e.parallels=function(a){return arguments.length?d(b=a[0]*Fg/180,c=a[1]*Fg/180):[b/Fg*180,c/Fg*180]},e}function Sb(a,b){function c(a,b){var c=Math.sqrt(f-2*e*Math.sin(b))/e;return[c*Math.sin(a*=e),g-c*Math.cos(a)]}var d=Math.sin(a),e=(d+Math.sin(b))/2,f=1+d*(2*e-d),g=Math.sqrt(f)/e;return c.invert=function(a,b){var c=g-b;return[Math.atan2(a,c)/e,ba((f-(a*a+c*c)*e*e)/(2*e))]},c}function Tb(){function a(a,b){Jh+=e*a-d*b,d=a,e=b}var b,c,d,e;Oh.point=function(f,g){Oh.point=a,b=d=f,c=e=g},Oh.lineEnd=function(){a(b,c)}}function Ub(a,b){Kh>a&&(Kh=a),a>Mh&&(Mh=a),Lh>b&&(Lh=b),b>Nh&&(Nh=b)}function Vb(){function a(a,b){g.push("M",a,",",b,f)}function b(a,b){g.push("M",a,",",b),h.point=c}function c(a,b){g.push("L",a,",",b)}function d(){h.point=a}function e(){g.push("Z")}var f=Wb(4.5),g=[],h={point:a,lineStart:function(){h.point=b},lineEnd:d,polygonStart:function(){h.lineEnd=e},polygonEnd:function(){h.lineEnd=d,h.point=a},pointRadius:function(a){return f=Wb(a),h},result:function(){if(g.length){var a=g.join("");return g=[],a}}};return h}function Wb(a){return"m0,"+a+"a"+a+","+a+" 0 1,1 0,"+-2*a+"a"+a+","+a+" 0 1,1 0,"+2*a+"z"}function Xb(a,b){wh+=a,xh+=b,++yh}function Yb(){function a(a,d){var e=a-b,f=d-c,g=Math.sqrt(e*e+f*f);zh+=g*(b+a)/2,Ah+=g*(c+d)/2,Bh+=g,Xb(b=a,c=d)}var b,c;Qh.point=function(d,e){Qh.point=a,Xb(b=d,c=e)}}function Zb(){Qh.point=Xb}function $b(){function a(a,b){var c=a-d,f=b-e,g=Math.sqrt(c*c+f*f);zh+=g*(d+a)/2,Ah+=g*(e+b)/2,Bh+=g,g=e*a-d*b,Ch+=g*(d+a),Dh+=g*(e+b),Eh+=3*g,Xb(d=a,e=b)}var b,c,d,e;Qh.point=function(f,g){Qh.point=a,Xb(b=d=f,c=e=g)},Qh.lineEnd=function(){a(b,c)}}function _b(a){function b(b,c){a.moveTo(b+g,c),a.arc(b,c,g,0,Gg)}function c(b,c){a.moveTo(b,c),h.point=d}function d(b,c){a.lineTo(b,c)}function e(){h.point=b}function f(){a.closePath()}var g=4.5,h={point:b,lineStart:function(){h.point=c},lineEnd:e,polygonStart:function(){h.lineEnd=f},polygonEnd:function(){h.lineEnd=e,h.point=b},pointRadius:function(a){return g=a,h},result:v};return h}function ac(a){function b(a){return(h?d:c)(a)}function c(b){return dc(b,function(c,d){c=a(c,d),b.point(c[0],c[1])})}function d(b){function c(c,d){c=a(c,d),b.point(c[0],c[1])}function d(){t=0/0,y.point=f,b.lineStart()}function f(c,d){var f=ob([c,d]),g=a(c,d);e(t,u,s,v,w,x,t=g[0],u=g[1],s=c,v=f[0],w=f[1],x=f[2],h,b),b.point(t,u)}function g(){y.point=c,b.lineEnd()}function i(){d(),y.point=j,y.lineEnd=k}function j(a,b){f(l=a,m=b),n=t,o=u,p=v,q=w,r=x,y.point=f}function k(){e(t,u,s,v,w,x,n,o,l,p,q,r,h,b),y.lineEnd=g,g()}var l,m,n,o,p,q,r,s,t,u,v,w,x,y={point:c,lineStart:d,lineEnd:g,polygonStart:function(){ +b.polygonStart(),y.lineStart=i},polygonEnd:function(){b.polygonEnd(),y.lineStart=d}};return y}function e(b,c,d,h,i,j,k,l,m,n,o,p,q,r){var s=k-b,t=l-c,u=s*s+t*t;if(u>4*f&&q--){var v=h+n,w=i+o,x=j+p,y=Math.sqrt(v*v+w*w+x*x),z=Math.asin(x/=y),A=ng(ng(x)-1)f||ng((s*E+t*F)/u-.5)>.3||g>h*n+i*o+j*p)&&(e(b,c,d,h,i,j,C,D,A,v/=y,w/=y,x,q,r),r.point(C,D),e(C,D,A,v,w,x,k,l,m,n,o,p,q,r))}}var f=.5,g=Math.cos(30*Jg),h=16;return b.precision=function(a){return arguments.length?(h=(f=a*a)>0&&16,b):Math.sqrt(f)},b}function bc(a){var b=ac(function(b,c){return a([b*Kg,c*Kg])});return function(a){return gc(b(a))}}function cc(a){this.stream=a}function dc(a,b){return{point:b,sphere:function(){a.sphere()},lineStart:function(){a.lineStart()},lineEnd:function(){a.lineEnd()},polygonStart:function(){a.polygonStart()},polygonEnd:function(){a.polygonEnd()}}}function ec(a){return fc(function(){return a})()}function fc(a){function b(a){return a=h(a[0]*Jg,a[1]*Jg),[a[0]*m+i,j-a[1]*m]}function c(a){return a=h.invert((a[0]-i)/m,(j-a[1])/m),a&&[a[0]*Kg,a[1]*Kg]}function d(){h=Bb(g=jc(r,t,u),f);var a=f(p,q);return i=n-a[0]*m,j=o+a[1]*m,e()}function e(){return k&&(k.valid=!1,k=null),b}var f,g,h,i,j,k,l=ac(function(a,b){return a=f(a,b),[a[0]*m+i,j-a[1]*m]}),m=150,n=480,o=250,p=0,q=0,r=0,t=0,u=0,v=Gh,w=s,x=null,y=null;return b.stream=function(a){return k&&(k.valid=!1),k=gc(v(g,l(w(a)))),k.valid=!0,k},b.clipAngle=function(a){return arguments.length?(v=null==a?(x=a,Gh):Ob((x=+a)*Jg),e()):x},b.clipExtent=function(a){return arguments.length?(y=a,w=a?Qb(a[0][0],a[0][1],a[1][0],a[1][1]):s,e()):y},b.scale=function(a){return arguments.length?(m=+a,d()):m},b.translate=function(a){return arguments.length?(n=+a[0],o=+a[1],d()):[n,o]},b.center=function(a){return arguments.length?(p=a[0]%360*Jg,q=a[1]%360*Jg,d()):[p*Kg,q*Kg]},b.rotate=function(a){return arguments.length?(r=a[0]%360*Jg,t=a[1]%360*Jg,u=a.length>2?a[2]%360*Jg:0,d()):[r*Kg,t*Kg,u*Kg]},bg.rebind(b,l,"precision"),function(){return f=a.apply(this,arguments),b.invert=f.invert&&c,d()}}function gc(a){return dc(a,function(b,c){a.point(b*Jg,c*Jg)})}function hc(a,b){return[a,b]}function ic(a,b){return[a>Fg?a-Gg:-Fg>a?a+Gg:a,b]}function jc(a,b,c){return a?b||c?Bb(lc(a),mc(b,c)):lc(a):b||c?mc(b,c):ic}function kc(a){return function(b,c){return b+=a,[b>Fg?b-Gg:-Fg>b?b+Gg:b,c]}}function lc(a){var b=kc(a);return b.invert=kc(-a),b}function mc(a,b){function c(a,b){var c=Math.cos(b),h=Math.cos(a)*c,i=Math.sin(a)*c,j=Math.sin(b),k=j*d+h*e;return[Math.atan2(i*f-k*g,h*d-j*e),ba(k*f+i*g)]}var d=Math.cos(a),e=Math.sin(a),f=Math.cos(b),g=Math.sin(b);return c.invert=function(a,b){var c=Math.cos(b),h=Math.cos(a)*c,i=Math.sin(a)*c,j=Math.sin(b),k=j*f-i*g;return[Math.atan2(i*f+j*g,h*d+k*e),ba(k*d-h*e)]},c}function nc(a,b){var c=Math.cos(a),d=Math.sin(a);return function(e,f,g,h){var i=g*b;null!=e?(e=oc(c,e),f=oc(c,f),(g>0?f>e:e>f)&&(e+=g*Gg)):(e=a+g*Gg,f=a-.5*i);for(var j,k=e;g>0?k>f:f>k;k-=i)h.point((j=ub([c,-d*Math.cos(k),-d*Math.sin(k)]))[0],j[1])}}function oc(a,b){var c=ob(b);c[0]-=a,tb(c);var d=aa(-c[1]);return((-c[2]<0?-d:d)+2*Math.PI-Dg)%(2*Math.PI)}function pc(a,b,c){var d=bg.range(a,b-Dg,c).concat(b);return function(a){return d.map(function(b){return[a,b]})}}function qc(a,b,c){var d=bg.range(a,b-Dg,c).concat(b);return function(a){return d.map(function(b){return[b,a]})}}function rc(a){return a.source}function sc(a){return a.target}function tc(a,b,c,d){var e=Math.cos(b),f=Math.sin(b),g=Math.cos(d),h=Math.sin(d),i=e*Math.cos(a),j=e*Math.sin(a),k=g*Math.cos(c),l=g*Math.sin(c),m=2*Math.asin(Math.sqrt(fa(d-b)+e*g*fa(c-a))),n=1/Math.sin(m),o=m?function(a){var b=Math.sin(a*=m)*n,c=Math.sin(m-a)*n,d=c*i+b*k,e=c*j+b*l,g=c*f+b*h;return[Math.atan2(e,d)*Kg,Math.atan2(g,Math.sqrt(d*d+e*e))*Kg]}:function(){return[a*Kg,b*Kg]};return o.distance=m,o}function uc(){function a(a,e){var f=Math.sin(e*=Jg),g=Math.cos(e),h=ng((a*=Jg)-b),i=Math.cos(h);Rh+=Math.atan2(Math.sqrt((h=g*Math.sin(h))*h+(h=d*f-c*g*i)*h),c*f+d*g*i),b=a,c=f,d=g}var b,c,d;Sh.point=function(e,f){b=e*Jg,c=Math.sin(f*=Jg),d=Math.cos(f),Sh.point=a},Sh.lineEnd=function(){Sh.point=Sh.lineEnd=v}}function vc(a,b){function c(b,c){var d=Math.cos(b),e=Math.cos(c),f=a(d*e);return[f*e*Math.sin(b),f*Math.sin(c)]}return c.invert=function(a,c){var d=Math.sqrt(a*a+c*c),e=b(d),f=Math.sin(e),g=Math.cos(e);return[Math.atan2(a*f,d*g),Math.asin(d&&c*f/d)]},c}function wc(a,b){function c(a,b){g>0?-Ig+Dg>b&&(b=-Ig+Dg):b>Ig-Dg&&(b=Ig-Dg);var c=g/Math.pow(e(b),f);return[c*Math.sin(f*a),g-c*Math.cos(f*a)]}var d=Math.cos(a),e=function(a){return Math.tan(Fg/4+a/2)},f=a===b?Math.sin(a):Math.log(d/Math.cos(b))/Math.log(e(b)/e(a)),g=d*Math.pow(e(a),f)/f;return f?(c.invert=function(a,b){var c=g-b,d=$(f)*Math.sqrt(a*a+c*c);return[Math.atan2(a,c)/f,2*Math.atan(Math.pow(g/d,1/f))-Ig]},c):yc}function xc(a,b){function c(a,b){var c=f-b;return[c*Math.sin(e*a),f-c*Math.cos(e*a)]}var d=Math.cos(a),e=a===b?Math.sin(a):(d-Math.cos(b))/(b-a),f=d/e+a;return ng(e)e;e++){for(;d>1&&_(a[c[d-2]],a[c[d-1]],a[e])<=0;)--d;c[d++]=e}return c.slice(0,d)}function Ec(a,b){return a[0]-b[0]||a[1]-b[1]}function Fc(a,b,c){return(c[0]-b[0])*(a[1]-b[1])<(c[1]-b[1])*(a[0]-b[0])}function Gc(a,b,c,d){var e=a[0],f=c[0],g=b[0]-e,h=d[0]-f,i=a[1],j=c[1],k=b[1]-i,l=d[1]-j,m=(h*(i-j)-l*(e-f))/(l*g-h*k);return[e+m*g,i+m*k]}function Hc(a){var b=a[0],c=a[a.length-1];return!(b[0]-c[0]||b[1]-c[1])}function Ic(){bd(this),this.edge=this.site=this.circle=null}function Jc(a){var b=ci.pop()||new Ic;return b.site=a,b}function Kc(a){Uc(a),_h.remove(a),ci.push(a),bd(a)}function Lc(a){var b=a.circle,c=b.x,d=b.cy,e={x:c,y:d},f=a.P,g=a.N,h=[a];Kc(a);for(var i=f;i.circle&&ng(c-i.circle.x)k;++k)j=h[k],i=h[k-1],$c(j.edge,i.site,j.site,e);i=h[0],j=h[l-1],j.edge=Yc(i.site,j.site,null,e),Tc(i),Tc(j)}function Mc(a){for(var b,c,d,e,f=a.x,g=a.y,h=_h._;h;)if(d=Nc(h,g)-f,d>Dg)h=h.L;else{if(e=f-Oc(h,g),!(e>Dg)){d>-Dg?(b=h.P,c=h):e>-Dg?(b=h,c=h.N):b=c=h;break}if(!h.R){b=h;break}h=h.R}var i=Jc(a);if(_h.insert(b,i),b||c){if(b===c)return Uc(b),c=Jc(b.site),_h.insert(i,c),i.edge=c.edge=Yc(b.site,i.site),Tc(b),void Tc(c);if(!c)return void(i.edge=Yc(b.site,i.site));Uc(b),Uc(c);var j=b.site,k=j.x,l=j.y,m=a.x-k,n=a.y-l,o=c.site,p=o.x-k,q=o.y-l,r=2*(m*q-n*p),s=m*m+n*n,t=p*p+q*q,u={x:(q*s-n*t)/r+k,y:(m*t-p*s)/r+l};$c(c.edge,j,o,u),i.edge=Yc(j,a,null,u),c.edge=Yc(a,o,null,u),Tc(b),Tc(c)}}function Nc(a,b){var c=a.site,d=c.x,e=c.y,f=e-b;if(!f)return d;var g=a.P;if(!g)return-(1/0);c=g.site;var h=c.x,i=c.y,j=i-b;if(!j)return h;var k=h-d,l=1/f-1/j,m=k/j;return l?(-m+Math.sqrt(m*m-2*l*(k*k/(-2*j)-i+j/2+e-f/2)))/l+d:(d+h)/2}function Oc(a,b){var c=a.N;if(c)return Nc(c,b);var d=a.site;return d.y===b?d.x:1/0}function Pc(a){this.site=a,this.edges=[]}function Qc(a){for(var b,c,d,e,f,g,h,i,j,k,l=a[0][0],m=a[1][0],n=a[0][1],o=a[1][1],p=$h,q=p.length;q--;)if(f=p[q],f&&f.prepare())for(h=f.edges,i=h.length,g=0;i>g;)k=h[g].end(),d=k.x,e=k.y,j=h[++g%i].start(),b=j.x,c=j.y,(ng(d-b)>Dg||ng(e-c)>Dg)&&(h.splice(g,0,new _c(Zc(f.site,k,ng(d-l)Dg?{x:l,y:ng(b-l)Dg?{x:ng(c-o)Dg?{x:m,y:ng(b-m)Dg?{x:ng(c-n)=-Eg)){var n=i*i+j*j,o=k*k+l*l,p=(l*n-j*o)/m,q=(i*o-k*n)/m,l=q+h,r=di.pop()||new Sc;r.arc=a,r.site=e,r.x=p+g,r.y=l+Math.sqrt(p*p+q*q),r.cy=l,a.circle=r;for(var s=null,t=bi._;t;)if(r.yq||q>=h)return;if(m>o){if(f){if(f.y>=j)return}else f={x:q,y:i};c={x:q,y:j}}else{if(f){if(f.yd||d>1)if(m>o){if(f){if(f.y>=j)return}else f={x:(i-e)/d,y:i};c={x:(j-e)/d,y:j}}else{if(f){if(f.yn){if(f){if(f.x>=h)return}else f={x:g,y:d*g+e};c={x:h,y:d*h+e}}else{if(f){if(f.xf||l>g||d>m||e>n)){if(o=j.point){var o,p=b-j.x,q=c-j.y,r=p*p+q*q;if(i>r){var s=Math.sqrt(i=r);d=b-s,e=c-s,f=b+s,g=c+s,h=o}}for(var t=j.nodes,u=.5*(k+m),v=.5*(l+n),w=b>=u,x=c>=v,y=x<<1|w,z=y+4;z>y;++y)if(j=t[3&y])switch(3&y){case 0:a(j,k,l,u,v);break;case 1:a(j,u,l,m,v);break;case 2:a(j,k,v,u,n);break;case 3:a(j,u,v,m,n)}}}(a,d,e,f,g),h}function nd(a,b){a=bg.rgb(a),b=bg.rgb(b);var c=a.r,d=a.g,e=a.b,f=b.r-c,g=b.g-d,h=b.b-e;return function(a){return"#"+ua(Math.round(c+f*a))+ua(Math.round(d+g*a))+ua(Math.round(e+h*a))}}function od(a,b){var c,d={},e={};for(c in a)c in b?d[c]=rd(a[c],b[c]):e[c]=a[c];for(c in b)c in a||(e[c]=b[c]);return function(a){for(c in d)e[c]=d[c](a);return e}}function pd(a,b){return a=+a,b=+b,function(c){return a*(1-c)+b*c}}function qd(a,b){var c,d,e,f=fi.lastIndex=gi.lastIndex=0,g=-1,h=[],i=[];for(a+="",b+="";(c=fi.exec(a))&&(d=gi.exec(b));)(e=d.index)>f&&(e=b.slice(f,e),h[g]?h[g]+=e:h[++g]=e),(c=c[0])===(d=d[0])?h[g]?h[g]+=d:h[++g]=d:(h[++g]=null,i.push({i:g,x:pd(c,d)})),f=gi.lastIndex;return fd;++d)h[(c=i[d]).i]=c.x(a);return h.join("")})}function rd(a,b){for(var c,d=bg.interpolators.length;--d>=0&&!(c=bg.interpolators[d](a,b)););return c}function sd(a,b){var c,d=[],e=[],f=a.length,g=b.length,h=Math.min(a.length,b.length);for(c=0;h>c;++c)d.push(rd(a[c],b[c]));for(;f>c;++c)e[c]=a[c];for(;g>c;++c)e[c]=b[c];return function(a){for(c=0;h>c;++c)e[c]=d[c](a);return e}}function td(a){return function(b){return 0>=b?0:b>=1?1:a(b)}}function ud(a){return function(b){return 1-a(1-b)}}function vd(a){return function(b){return.5*(.5>b?a(2*b):2-a(2-2*b))}}function wd(a){return a*a}function xd(a){return a*a*a}function yd(a){if(0>=a)return 0;if(a>=1)return 1;var b=a*a,c=b*a;return 4*(.5>a?c:3*(a-b)+c-.75)}function zd(a){return function(b){return Math.pow(b,a)}}function Ad(a){return 1-Math.cos(a*Ig)}function Bd(a){return Math.pow(2,10*(a-1))}function Cd(a){return 1-Math.sqrt(1-a*a)}function Dd(a,b){var c;return arguments.length<2&&(b=.45),arguments.length?c=b/Gg*Math.asin(1/a):(a=1,c=b/4),function(d){return 1+a*Math.pow(2,-10*d)*Math.sin((d-c)*Gg/b)}}function Ed(a){return a||(a=1.70158),function(b){return b*b*((a+1)*b-a)}}function Fd(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}function Gd(a,b){a=bg.hcl(a),b=bg.hcl(b);var c=a.h,d=a.c,e=a.l,f=b.h-c,g=b.c-d,h=b.l-e;return isNaN(g)&&(g=0,d=isNaN(d)?b.c:d),isNaN(f)?(f=0,c=isNaN(c)?b.h:c):f>180?f-=360:-180>f&&(f+=360),function(a){return ka(c+f*a,d+g*a,e+h*a)+""}}function Hd(a,b){a=bg.hsl(a),b=bg.hsl(b);var c=a.h,d=a.s,e=a.l,f=b.h-c,g=b.s-d,h=b.l-e;return isNaN(g)&&(g=0,d=isNaN(d)?b.s:d),isNaN(f)?(f=0,c=isNaN(c)?b.h:c):f>180?f-=360:-180>f&&(f+=360),function(a){return ia(c+f*a,d+g*a,e+h*a)+""}}function Id(a,b){a=bg.lab(a),b=bg.lab(b);var c=a.l,d=a.a,e=a.b,f=b.l-c,g=b.a-d,h=b.b-e;return function(a){return ma(c+f*a,d+g*a,e+h*a)+""}}function Jd(a,b){return b-=a,function(c){return Math.round(a+b*c)}}function Kd(a){var b=[a.a,a.b],c=[a.c,a.d],d=Md(b),e=Ld(b,c),f=Md(Nd(c,b,-e))||0;b[0]*c[1]180?k+=360:k-j>180&&(j+=360),e.push({i:d.push(d.pop()+"rotate(",null,")")-2,x:pd(j,k)})):k&&d.push(d.pop()+"rotate("+k+")"),l!=m?e.push({i:d.push(d.pop()+"skewX(",null,")")-2,x:pd(l,m)}):m&&d.push(d.pop()+"skewX("+m+")"),n[0]!=o[0]||n[1]!=o[1]?(c=d.push(d.pop()+"scale(",null,",",null,")"),e.push({i:c-4,x:pd(n[0],o[0])},{i:c-2,x:pd(n[1],o[1])})):(1!=o[0]||1!=o[1])&&d.push(d.pop()+"scale("+o+")"),c=e.length,function(a){for(var b,f=-1;++f=0;)c.push(e[d])}function _d(a,b){for(var c=[a],d=[];null!=(a=c.pop());)if(d.push(a),(f=a.children)&&(e=f.length))for(var e,f,g=-1;++gc;++c)(b=a[c][1])>e&&(d=c,e=b);return d}function ke(a){return a.reduce(le,0)}function le(a,b){return a+b[1]}function me(a,b){return ne(a,Math.ceil(Math.log(b.length)/Math.LN2+1))}function ne(a,b){for(var c=-1,d=+a[0],e=(a[1]-d)/b,f=[];++c<=b;)f[c]=e*c+d;return f}function oe(a){return[bg.min(a),bg.max(a)]}function pe(a,b){return a.value-b.value}function qe(a,b){var c=a._pack_next;a._pack_next=b,b._pack_prev=a,b._pack_next=c,c._pack_prev=b}function re(a,b){a._pack_next=b,b._pack_prev=a}function se(a,b){var c=b.x-a.x,d=b.y-a.y,e=a.r+b.r;return.999*e*e>c*c+d*d}function te(a){function b(a){k=Math.min(a.x-a.r,k),l=Math.max(a.x+a.r,l),m=Math.min(a.y-a.r,m),n=Math.max(a.y+a.r,n)}if((c=a.children)&&(j=c.length)){var c,d,e,f,g,h,i,j,k=1/0,l=-(1/0),m=1/0,n=-(1/0);if(c.forEach(ue),d=c[0],d.x=-d.r,d.y=0,b(d),j>1&&(e=c[1],e.x=e.r,e.y=0,b(e),j>2))for(f=c[2],xe(d,e,f),b(f),qe(d,f),d._pack_prev=f,qe(f,e),e=d._pack_next,g=3;j>g;g++){xe(d,e,f=c[g]);var o=0,p=1,q=1;for(h=e._pack_next;h!==e;h=h._pack_next,p++)if(se(h,f)){o=1;break}if(1==o)for(i=d._pack_prev;i!==h._pack_prev&&!se(i,f);i=i._pack_prev,q++);o?(q>p||p==q&&e.rg;g++)f=c[g],f.x-=r,f.y-=s,t=Math.max(t,f.r+Math.sqrt(f.x*f.x+f.y*f.y));a.r=t,c.forEach(ve)}}function ue(a){a._pack_next=a._pack_prev=a}function ve(a){delete a._pack_next,delete a._pack_prev}function we(a,b,c,d){var e=a.children;if(a.x=b+=d*a.x,a.y=c+=d*a.y,a.r*=d,e)for(var f=-1,g=e.length;++f=0;)b=e[f],b.z+=c,b.m+=c,c+=b.s+(d+=b.c)}function De(a,b,c){return a.a.parent===b.parent?a.a:c}function Ee(a){return 1+bg.max(a,function(a){return a.y})}function Fe(a){return a.reduce(function(a,b){return a+b.x},0)/a.length}function Ge(a){var b=a.children;return b&&b.length?Ge(b[0]):a}function He(a){var b,c=a.children;return c&&(b=c.length)?He(c[b-1]):a}function Ie(a){return{x:a.x,y:a.y,dx:a.dx,dy:a.dy}}function Je(a,b){var c=a.x+b[3],d=a.y+b[0],e=a.dx-b[1]-b[3],f=a.dy-b[0]-b[2];return 0>e&&(c+=e/2,e=0),0>f&&(d+=f/2,f=0),{x:c,y:d,dx:e,dy:f}}function Ke(a){var b=a[0],c=a[a.length-1];return c>b?[b,c]:[c,b]}function Le(a){return a.rangeExtent?a.rangeExtent():Ke(a.range())}function Me(a,b,c,d){var e=c(a[0],a[1]),f=d(b[0],b[1]);return function(a){return f(e(a))}}function Ne(a,b){var c,d=0,e=a.length-1,f=a[d],g=a[e];return f>g&&(c=d,d=e,e=c,c=f,f=g,g=c),a[d]=b.floor(f),a[e]=b.ceil(g),a}function Oe(a){return a?{floor:function(b){return Math.floor(b/a)*a},ceil:function(b){return Math.ceil(b/a)*a}}:ri}function Pe(a,b,c,d){var e=[],f=[],g=0,h=Math.min(a.length,b.length)-1;for(a[h]2?Pe:Me,i=d?Qd:Pd;return g=e(a,b,i,c),h=e(b,a,i,rd),f}function f(a){return g(a)}var g,h;return f.invert=function(a){return h(a)},f.domain=function(b){return arguments.length?(a=b.map(Number),e()):a},f.range=function(a){return arguments.length?(b=a,e()):b},f.rangeRound=function(a){return f.range(a).interpolate(Jd)},f.clamp=function(a){return arguments.length?(d=a,e()):d},f.interpolate=function(a){return arguments.length?(c=a,e()):c},f.ticks=function(b){return Ue(a,b)},f.tickFormat=function(b,c){return Ve(a,b,c)},f.nice=function(b){return Se(a,b),e()},f.copy=function(){return Qe(a,b,c,d)},e()}function Re(a,b){return bg.rebind(a,b,"range","rangeRound","interpolate","clamp")}function Se(a,b){return Ne(a,Oe(Te(a,b)[2]))}function Te(a,b){null==b&&(b=10);var c=Ke(a),d=c[1]-c[0],e=Math.pow(10,Math.floor(Math.log(d/b)/Math.LN10)),f=b/d*e;return.15>=f?e*=10:.35>=f?e*=5:.75>=f&&(e*=2),c[0]=Math.ceil(c[0]/e)*e,c[1]=Math.floor(c[1]/e)*e+.5*e,c[2]=e,c}function Ue(a,b){return bg.range.apply(bg,Te(a,b))}function Ve(a,b,c){var d=Te(a,b);if(c){var e=fh.exec(c);if(e.shift(),"s"===e[8]){var f=bg.formatPrefix(Math.max(ng(d[0]),ng(d[1])));return e[7]||(e[7]="."+We(f.scale(d[2]))),e[8]="f",c=bg.format(e.join("")),function(a){return c(f.scale(a))+f.symbol}}e[7]||(e[7]="."+Xe(e[8],d)),c=e.join("")}else c=",."+We(d[2])+"f";return bg.format(c)}function We(a){return-Math.floor(Math.log(a)/Math.LN10+.01)}function Xe(a,b){var c=We(b[2]);return a in si?Math.abs(c-We(Math.max(ng(b[0]),ng(b[1]))))+ +("e"!==a):c-2*("%"===a)}function Ye(a,b,c,d){function e(a){return(c?Math.log(0>a?0:a):-Math.log(a>0?0:-a))/Math.log(b)}function f(a){return c?Math.pow(b,a):-Math.pow(b,-a)}function g(b){return a(e(b))}return g.invert=function(b){return f(a.invert(b))},g.domain=function(b){return arguments.length?(c=b[0]>=0,a.domain((d=b.map(Number)).map(e)),g):d},g.base=function(c){return arguments.length?(b=+c,a.domain(d.map(e)),g):b},g.nice=function(){var b=Ne(d.map(e),c?Math:ui);return a.domain(b),d=b.map(f),g},g.ticks=function(){var a=Ke(d),g=[],h=a[0],i=a[1],j=Math.floor(e(h)),k=Math.ceil(e(i)),l=b%1?2:b;if(isFinite(k-j)){if(c){for(;k>j;j++)for(var m=1;l>m;m++)g.push(f(j)*m);g.push(f(j))}else for(g.push(f(j));j++0;m--)g.push(f(j)*m);for(j=0;g[j]i;k--);g=g.slice(j,k)}return g},g.tickFormat=function(a,b){if(!arguments.length)return ti;arguments.length<2?b=ti:"function"!=typeof b&&(b=bg.format(b));var d,h=Math.max(.1,a/g.ticks().length),i=c?(d=1e-12,Math.ceil):(d=-1e-12,Math.floor);return function(a){return a/f(i(e(a)+d))<=h?b(a):""}},g.copy=function(){return Ye(a.copy(),b,c,d)},Re(g,a)}function Ze(a,b,c){function d(b){return a(e(b))}var e=$e(b),f=$e(1/b);return d.invert=function(b){return f(a.invert(b))},d.domain=function(b){return arguments.length?(a.domain((c=b.map(Number)).map(e)),d):c},d.ticks=function(a){return Ue(c,a)},d.tickFormat=function(a,b){return Ve(c,a,b)},d.nice=function(a){return d.domain(Se(c,a))},d.exponent=function(g){return arguments.length?(e=$e(b=g),f=$e(1/b),a.domain(c.map(e)),d):b},d.copy=function(){return Ze(a.copy(),b,c)},Re(d,a)}function $e(a){return function(b){return 0>b?-Math.pow(-b,a):Math.pow(b,a)}}function _e(a,b){function c(c){return f[((e.get(c)||("range"===b.t?e.set(c,a.push(c)):0/0))-1)%f.length]}function d(b,c){return bg.range(a.length).map(function(a){return b+c*a})}var e,f,g;return c.domain=function(d){if(!arguments.length)return a;a=[],e=new j;for(var f,g=-1,h=d.length;++gc?[0/0,0/0]:[c>0?h[c-1]:a[0],cb?0/0:b/f+a,[b,b+1/f]},d.copy=function(){return bf(a,b,c)},e()}function cf(a,b){function c(c){return c>=c?b[bg.bisect(a,c)]:void 0}return c.domain=function(b){return arguments.length?(a=b,c):a},c.range=function(a){return arguments.length?(b=a,c):b},c.invertExtent=function(c){return c=b.indexOf(c),[a[c-1],a[c]]},c.copy=function(){return cf(a,b)},c}function df(a){function b(a){return+a}return b.invert=b,b.domain=b.range=function(c){return arguments.length?(a=c.map(b),b):a},b.ticks=function(b){return Ue(a,b)},b.tickFormat=function(b,c){return Ve(a,b,c)},b.copy=function(){return df(a)},b}function ef(){return 0}function ff(a){return a.innerRadius}function gf(a){return a.outerRadius}function hf(a){return a.startAngle}function jf(a){return a.endAngle}function kf(a){return a&&a.padAngle}function lf(a,b,c,d){return(a-c)*b-(b-d)*a>0?0:1}function mf(a,b,c,d,e){var f=a[0]-b[0],g=a[1]-b[1],h=(e?d:-d)/Math.sqrt(f*f+g*g),i=h*g,j=-h*f,k=a[0]+i,l=a[1]+j,m=b[0]+i,n=b[1]+j,o=(k+m)/2,p=(l+n)/2,q=m-k,r=n-l,s=q*q+r*r,t=c-d,u=k*n-m*l,v=(0>r?-1:1)*Math.sqrt(t*t*s-u*u),w=(u*r-q*v)/s,x=(-u*q-r*v)/s,y=(u*r+q*v)/s,z=(-u*q+r*v)/s,A=w-o,B=x-p,C=y-o,D=z-p;return A*A+B*B>C*C+D*D&&(w=y,x=z),[[w-i,x-j],[w*c/t,x*c/t]]}function nf(a){function b(b){function g(){j.push("M",f(a(k),h))}for(var i,j=[],k=[],l=-1,m=b.length,n=Aa(c),o=Aa(d);++l1&&e.push("H",d[0]),e.join("")}function rf(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];++b1){h=b[1],f=a[i],i++,d+="C"+(e[0]+g[0])+","+(e[1]+g[1])+","+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1];for(var j=2;j9&&(e=3*b/Math.sqrt(e),g[h]=e*c,g[h+1]=e*d));for(h=-1;++h<=i;)e=(a[Math.min(i,h+1)][0]-a[Math.max(0,h-1)][0])/(6*(1+g[h]*g[h])),f.push([e||0,g[h]*e||0]);return f}function Hf(a){return a.length<3?of(a):a[0]+wf(a,Gf(a))}function If(a){for(var b,c,d,e=-1,f=a.length;++ed)return k();var e=f[f.active];e&&(--f.count,delete f[f.active],e.event&&e.event.interrupt.call(a,a.__data__,e.index)),f.active=d,g.event&&g.event.start.call(a,a.__data__,b),g.tween.forEach(function(c,d){(d=d.call(a,a.__data__,b))&&p.push(d)}),m=g.ease,l=g.duration,bg.timer(function(){return o.c=j(c||1)?Cb:j,1},0,h)}function j(c){if(f.active!==d)return 1;for(var e=c/l,h=m(e),i=p.length;i>0;)p[--i].call(a,h);return e>=1?(g.event&&g.event.end.call(a,a.__data__,b),k()):void 0}function k(){return--f.count?delete f[d]:delete a[c],1}var l,m,n=g.delay,o=ch,p=[];return o.t=n+h,e>=n?i(e-n):void(o.c=i)},0,h)}}function Wf(a,b,c){a.attr("transform",function(a){var d=b(a);return"translate("+(isFinite(d)?d:c(a))+",0)"})}function Xf(a,b,c){a.attr("transform",function(a){var d=b(a);return"translate(0,"+(isFinite(d)?d:c(a))+")"})}function Yf(a){return a.toISOString()}function Zf(a,b,c){function d(b){return a(b)}function e(a,c){var d=a[1]-a[0],e=d/c,f=bg.bisect(Ti,e);return f==Ti.length?[b.year,Te(a.map(function(a){return a/31536e6}),c)[2]]:f?b[e/Ti[f-1]1?{floor:function(b){for(;c(b=a.floor(b));)b=$f(b-1);return b},ceil:function(b){for(;c(b=a.ceil(b));)b=$f(+b+1);return b}}:a))},d.ticks=function(a,b){var c=Ke(d.domain()),f=null==a?e(c,10):"number"==typeof a?e(c,a):!a.range&&[{range:a},b];return f&&(a=f[0],b=f[1]),a.range(c[0],$f(+c[1]+1),1>b?1:b)},d.tickFormat=function(){return c},d.copy=function(){return Zf(a.copy(),b,c)},Re(d,a)}function $f(a){return new Date(a)}function _f(a){return JSON.parse(a.responseText)}function ag(a){var b=eg.createRange();return b.selectNode(eg.body),b.createContextualFragment(a.responseText)}var bg={version:"3.5.5"},cg=[].slice,dg=function(a){return cg.call(a)},eg=this.document;if(eg)try{dg(eg.documentElement.childNodes)[0].nodeType}catch(fg){dg=function(a){for(var b=a.length,c=new Array(b);b--;)c[b]=a[b];return c}}if(Date.now||(Date.now=function(){return+new Date}),eg)try{eg.createElement("DIV").style.setProperty("opacity",0,"")}catch(gg){var hg=this.Element.prototype,ig=hg.setAttribute,jg=hg.setAttributeNS,kg=this.CSSStyleDeclaration.prototype,lg=kg.setProperty;hg.setAttribute=function(a,b){ig.call(this,a,b+"")},hg.setAttributeNS=function(a,b,c){jg.call(this,a,b,c+"")},kg.setProperty=function(a,b,c){lg.call(this,a,b+"",c)}}bg.ascending=c,bg.descending=function(a,b){return a>b?-1:b>a?1:b>=a?0:0/0},bg.min=function(a,b){var c,d,e=-1,f=a.length;if(1===arguments.length){for(;++e=d){c=d;break}for(;++ed&&(c=d)}else{for(;++e=d){c=d;break}for(;++ed&&(c=d)}return c},bg.max=function(a,b){var c,d,e=-1,f=a.length;if(1===arguments.length){for(;++e=d){c=d;break}for(;++ec&&(c=d)}else{for(;++e=d){c=d;break}for(;++ec&&(c=d)}return c},bg.extent=function(a,b){var c,d,e,f=-1,g=a.length;if(1===arguments.length){for(;++f=d){c=e=d;break}for(;++fd&&(c=d),d>e&&(e=d))}else{for(;++f=d){c=e=d;break}for(;++fd&&(c=d),d>e&&(e=d))}return[c,e]},bg.sum=function(a,b){var c,d=0,f=a.length,g=-1;if(1===arguments.length)for(;++g1?i/(k-1):void 0},bg.deviation=function(){var a=bg.variance.apply(this,arguments);return a?Math.sqrt(a):a};var mg=f(c);bg.bisectLeft=mg.left,bg.bisect=bg.bisectRight=mg.right,bg.bisector=function(a){return f(1===a.length?function(b,d){return c(a(b),d)}:a)},bg.shuffle=function(a,b,c){(f=arguments.length)<3&&(c=a.length,2>f&&(b=0));for(var d,e,f=c-b;f;)e=Math.random()*f--|0,d=a[f+b],a[f+b]=a[e+b],a[e+b]=d;return a},bg.permute=function(a,b){for(var c=b.length,d=new Array(c);c--;)d[c]=a[b[c]];return d},bg.pairs=function(a){for(var b,c=0,d=a.length-1,e=a[0],f=new Array(0>d?0:d);d>c;)f[c]=[b=e,e=a[++c]];return f},bg.zip=function(){if(!(d=arguments.length))return[];for(var a=-1,b=bg.min(arguments,g),c=new Array(b);++a=0;)for(d=a[e],b=d.length;--b>=0;)c[--g]=d[b];return c};var ng=Math.abs;bg.range=function(a,b,c){if(arguments.length<3&&(c=1,arguments.length<2&&(b=a,a=0)),(b-a)/c===1/0)throw new Error("infinite range");var d,e=[],f=h(ng(c)),g=-1;if(a*=f,b*=f,c*=f,0>c)for(;(d=a+c*++g)>b;)e.push(d/f);else for(;(d=a+c*++g)=f.length)return d?d.call(e,g):c?g.sort(c):g;for(var i,k,l,m,n=-1,o=g.length,p=f[h++],q=new j;++n=f.length)return a;var d=[],e=g[c++];return a.forEach(function(a,e){d.push({key:a,values:b(e,c)})}),e?d.sort(function(a,b){return e(a.key,b.key)}):d}var c,d,e={},f=[],g=[];return e.map=function(b,c){return a(c,b,0)},e.entries=function(c){return b(a(bg.map,c,0),0)},e.key=function(a){return f.push(a),e},e.sortKeys=function(a){return g[f.length-1]=a,e},e.sortValues=function(a){return c=a,e},e.rollup=function(a){return d=a,e},e},bg.set=function(a){var b=new r;if(a)for(var c=0,d=a.length;d>c;++c)b.add(a[c]);return b},i(r,{has:m,add:function(a){return this._[k(a+="")]=!0,a},remove:n,values:o,size:p,empty:q,forEach:function(a){for(var b in this._)a.call(this,l(b))}}),bg.behavior={},bg.rebind=function(a,b){for(var c,d=1,e=arguments.length;++d=0&&(d=a.slice(c+1),a=a.slice(0,c)),a)return arguments.length<2?this[a].on(d):this[a].on(d,b);if(2===arguments.length){if(null==b)for(a in this)this.hasOwnProperty(a)&&this[a].on(d,null);return this}},bg.event=null,bg.requote=function(a){return a.replace(rg,"\\$&")};var rg=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,sg={}.__proto__?function(a,b){a.__proto__=b}:function(a,b){for(var c in b)a[c]=b[c]},tg=function(a,b){return b.querySelector(a)},ug=function(a,b){return b.querySelectorAll(a)},vg=function(a,b){var c=a.matches||a[u(a,"matchesSelector")];return(vg=function(a,b){return c.call(a,b)})(a,b)};"function"==typeof Sizzle&&(tg=function(a,b){return Sizzle(a,b)[0]||null},ug=Sizzle,vg=Sizzle.matchesSelector),bg.selection=function(){return bg.select(eg.documentElement)};var wg=bg.selection.prototype=[];wg.select=function(a){var b,c,d,e,f=[];a=C(a);for(var g=-1,h=this.length;++g=0&&(c=a.slice(0,b),a=a.slice(b+1)),xg.hasOwnProperty(c)?{space:xg[c],local:a}:a}},wg.attr=function(a,b){if(arguments.length<2){if("string"==typeof a){var c=this.node();return a=bg.ns.qualify(a),a.local?c.getAttributeNS(a.space,a.local):c.getAttribute(a)}for(b in a)this.each(E(b,a[b]));return this}return this.each(E(a,b))},wg.classed=function(a,b){if(arguments.length<2){if("string"==typeof a){var c=this.node(),d=(a=H(a)).length,e=-1;if(b=c.classList){for(;++ee){if("string"!=typeof a){2>e&&(c="");for(d in a)this.each(K(d,a[d],c));return this}if(2>e){var f=this.node();return b(f).getComputedStyle(f,null).getPropertyValue(a)}d=""}return this.each(K(a,c,d))},wg.property=function(a,b){if(arguments.length<2){if("string"==typeof a)return this.node()[a];for(b in a)this.each(L(b,a[b]));return this}return this.each(L(a,b))},wg.text=function(a){return arguments.length?this.each("function"==typeof a?function(){var b=a.apply(this,arguments);this.textContent=null==b?"":b}:null==a?function(){this.textContent=""}:function(){this.textContent=a}):this.node().textContent},wg.html=function(a){return arguments.length?this.each("function"==typeof a?function(){var b=a.apply(this,arguments);this.innerHTML=null==b?"":b}:null==a?function(){this.innerHTML=""}:function(){this.innerHTML=a}):this.node().innerHTML},wg.append=function(a){return a=M(a),this.select(function(){return this.appendChild(a.apply(this,arguments))})},wg.insert=function(a,b){return a=M(a),b=C(b),this.select(function(){return this.insertBefore(a.apply(this,arguments),b.apply(this,arguments)||null)})},wg.remove=function(){return this.each(N)},wg.data=function(a,b){function c(a,c){var d,e,f,g=a.length,l=c.length,m=Math.min(g,l),n=new Array(l),o=new Array(l),p=new Array(g);if(b){var q,r=new j,s=new Array(g);for(d=-1;++dd;++d)o[d]=O(c[d]);for(;g>d;++d)p[d]=a[d]}o.update=n,o.parentNode=n.parentNode=p.parentNode=a.parentNode,h.push(o),i.push(n),k.push(p)}var d,e,f=-1,g=this.length;if(!arguments.length){for(a=new Array(g=(d=this[0]).length);++ff;f++){e.push(b=[]),b.parentNode=(c=this[f]).parentNode;for(var h=0,i=c.length;i>h;h++)(d=c[h])&&a.call(d,d.__data__,h,f)&&b.push(d)}return B(e)},wg.order=function(){for(var a=-1,b=this.length;++a=0;)(c=d[e])&&(f&&f!==c.nextSibling&&f.parentNode.insertBefore(c,f),f=c);return this},wg.sort=function(a){a=Q.apply(this,arguments);for(var b=-1,c=this.length;++ba;a++)for(var c=this[a],d=0,e=c.length;e>d;d++){var f=c[d];if(f)return f}return null},wg.size=function(){var a=0;return R(this,function(){++a}),a};var yg=[];bg.selection.enter=S,bg.selection.enter.prototype=yg,yg.append=wg.append,yg.empty=wg.empty,yg.node=wg.node,yg.call=wg.call,yg.size=wg.size,yg.select=function(a){for(var b,c,d,e,f,g=[],h=-1,i=this.length;++hd){if("string"!=typeof a){2>d&&(b=!1);for(c in a)this.each(U(c,a[c],b));return this}if(2>d)return(d=this.node()["__on"+a])&&d._;c=!1}return this.each(U(a,b,c))};var zg=bg.map({mouseenter:"mouseover",mouseleave:"mouseout"});eg&&zg.forEach(function(a){"on"+a in eg&&zg.remove(a)});var Ag,Bg=0;bg.mouse=function(a){return Y(a,z())};var Cg=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;bg.touch=function(a,b,c){if(arguments.length<3&&(c=b,b=z().changedTouches),b)for(var d,e=0,f=b.length;f>e;++e)if((d=b[e]).identifier===c)return Y(a,d)},bg.behavior.drag=function(){function a(){this.on("mousedown.drag",f).on("touchstart.drag",g)}function c(a,b,c,f,g){return function(){function h(){var a,c,d=b(m,p);d&&(a=d[0]-t[0],c=d[1]-t[1],o|=a|c,t=d,n({type:"drag",x:d[0]+j[0],y:d[1]+j[1],dx:a,dy:c}))}function i(){b(m,p)&&(r.on(f+q,null).on(g+q,null),s(o&&bg.event.target===l),n({type:"dragend"}))}var j,k=this,l=bg.event.target,m=k.parentNode,n=d.of(k,arguments),o=0,p=a(),q=".drag"+(null==p?"":"-"+p),r=bg.select(c(l)).on(f+q,h).on(g+q,i),s=X(l),t=b(m,p);e?(j=e.apply(k,arguments),j=[j.x-t[0],j.y-t[1]]):j=[0,0],n({type:"dragstart"})}}var d=A(a,"drag","dragstart","dragend"),e=null,f=c(v,bg.mouse,b,"mousemove","mouseup"),g=c(Z,bg.touch,s,"touchmove","touchend");return a.origin=function(b){return arguments.length?(e=b,a):e},bg.rebind(a,d,"on")},bg.touches=function(a,b){return arguments.length<2&&(b=z().touches),b?dg(b).map(function(b){var c=Y(a,b);return c.identifier=b.identifier,c}):[]};var Dg=1e-6,Eg=Dg*Dg,Fg=Math.PI,Gg=2*Fg,Hg=Gg-Dg,Ig=Fg/2,Jg=Fg/180,Kg=180/Fg,Lg=Math.SQRT2,Mg=2,Ng=4;bg.interpolateZoom=function(a,b){function c(a){var b=a*s;if(r){var c=da(p),g=f/(Mg*m)*(c*ea(Lg*b+p)-ca(p));return[d+g*j,e+g*k,f*c/da(Lg*b+p)]}return[d+a*j,e+a*k,f*Math.exp(Lg*b)]}var d=a[0],e=a[1],f=a[2],g=b[0],h=b[1],i=b[2],j=g-d,k=h-e,l=j*j+k*k,m=Math.sqrt(l),n=(i*i-f*f+Ng*l)/(2*f*Mg*m),o=(i*i-f*f-Ng*l)/(2*i*Mg*m),p=Math.log(Math.sqrt(n*n+1)-n),q=Math.log(Math.sqrt(o*o+1)-o),r=q-p,s=(r||Math.log(i/f))/Lg;return c.duration=1e3*s,c},bg.behavior.zoom=function(){function a(a){a.on(F,l).on(Pg+".zoom",n).on("dblclick.zoom",o).on(I,m)}function c(a){return[(a[0]-z.x)/z.k,(a[1]-z.y)/z.k]}function d(a){return[a[0]*z.k+z.x,a[1]*z.k+z.y]}function e(a){z.k=Math.max(C[0],Math.min(C[1],a))}function f(a,b){b=d(b),z.x+=a[0]-b[0],z.y+=a[1]-b[1]}function g(b,c,d,g){b.__chart__={x:z.x,y:z.y,k:z.k},e(Math.pow(2,g)),f(q=c,d),b=bg.select(b),D>0&&(b=b.transition().duration(D)),b.call(a.event)}function h(){v&&v.domain(u.range().map(function(a){return(a-z.x)/z.k}).map(u.invert)),x&&x.domain(w.range().map(function(a){return(a-z.y)/z.k}).map(w.invert))}function i(a){E++||a({type:"zoomstart"})}function j(a){h(),a({type:"zoom",scale:z.k,translate:[z.x,z.y]})}function k(a){--E||a({type:"zoomend"}),q=null}function l(){function a(){l=1,f(bg.mouse(e),n),j(h)}function d(){m.on(G,null).on(H,null),o(l&&bg.event.target===g),k(h)}var e=this,g=bg.event.target,h=J.of(e,arguments),l=0,m=bg.select(b(e)).on(G,a).on(H,d),n=c(bg.mouse(e)),o=X(e);Ji.call(e),i(h)}function m(){function a(){var a=bg.touches(o);return n=z.k,a.forEach(function(a){a.identifier in q&&(q[a.identifier]=c(a))}),a}function b(){var b=bg.event.target;bg.select(b).on(u,d).on(v,h),w.push(b);for(var c=bg.event.changedTouches,e=0,f=c.length;f>e;++e)q[c[e].identifier]=null;var i=a(),j=Date.now();if(1===i.length){if(500>j-t){var k=i[0];g(o,k,q[k.identifier],Math.floor(Math.log(z.k)/Math.LN2)+1),y()}t=j}else if(i.length>1){var k=i[0],l=i[1],m=k[0]-l[0],n=k[1]-l[1];r=m*m+n*n}}function d(){var a,b,c,d,g=bg.touches(o);Ji.call(o);for(var h=0,i=g.length;i>h;++h,d=null)if(c=g[h],d=q[c.identifier]){if(b)break;a=c,b=d}if(d){var k=(k=c[0]-a[0])*k+(k=c[1]-a[1])*k,l=r&&Math.sqrt(k/r);a=[(a[0]+c[0])/2,(a[1]+c[1])/2],b=[(b[0]+d[0])/2,(b[1]+d[1])/2],e(l*n)}t=null,f(a,b),j(p)}function h(){if(bg.event.touches.length){for(var b=bg.event.changedTouches,c=0,d=b.length;d>c;++c)delete q[b[c].identifier];for(var e in q)return void a()}bg.selectAll(w).on(s,null),x.on(F,l).on(I,m),A(),k(p)}var n,o=this,p=J.of(o,arguments),q={},r=0,s=".zoom-"+bg.event.changedTouches[0].identifier,u="touchmove"+s,v="touchend"+s,w=[],x=bg.select(o),A=X(o);b(),i(p),x.on(F,null).on(I,b)}function n(){var a=J.of(this,arguments);s?clearTimeout(s):(p=c(q=r||bg.mouse(this)),Ji.call(this),i(a)),s=setTimeout(function(){s=null,k(a)},50),y(),e(Math.pow(2,.002*Og())*z.k),f(q,p),j(a)}function o(){var a=bg.mouse(this),b=Math.log(z.k)/Math.LN2;g(this,a,c(a),bg.event.shiftKey?Math.ceil(b)-1:Math.floor(b)+1)}var p,q,r,s,t,u,v,w,x,z={x:0,y:0,k:1},B=[960,500],C=Qg,D=250,E=0,F="mousedown.zoom",G="mousemove.zoom",H="mouseup.zoom",I="touchstart.zoom",J=A(a,"zoomstart","zoom","zoomend");return Pg||(Pg="onwheel"in eg?(Og=function(){return-bg.event.deltaY*(bg.event.deltaMode?120:1)},"wheel"):"onmousewheel"in eg?(Og=function(){return bg.event.wheelDelta},"mousewheel"):(Og=function(){return-bg.event.detail},"MozMousePixelScroll")),a.event=function(a){a.each(function(){var a=J.of(this,arguments),b=z;Hi?bg.select(this).transition().each("start.zoom",function(){z=this.__chart__||{x:0,y:0,k:1},i(a)}).tween("zoom:zoom",function(){var c=B[0],d=B[1],e=q?q[0]:c/2,f=q?q[1]:d/2,g=bg.interpolateZoom([(e-z.x)/z.k,(f-z.y)/z.k,c/z.k],[(e-b.x)/b.k,(f-b.y)/b.k,c/b.k]);return function(b){var d=g(b),h=c/d[2];this.__chart__=z={x:e-d[0]*h,y:f-d[1]*h,k:h},j(a)}}).each("interrupt.zoom",function(){k(a)}).each("end.zoom",function(){k(a)}):(this.__chart__=z,i(a),j(a),k(a))})},a.translate=function(b){return arguments.length?(z={x:+b[0],y:+b[1],k:z.k},h(),a):[z.x,z.y]},a.scale=function(b){return arguments.length?(z={x:z.x,y:z.y,k:+b},h(),a):z.k},a.scaleExtent=function(b){return arguments.length?(C=null==b?Qg:[+b[0],+b[1]],a):C},a.center=function(b){return arguments.length?(r=b&&[+b[0],+b[1]],a):r},a.size=function(b){return arguments.length?(B=b&&[+b[0],+b[1]],a):B},a.duration=function(b){return arguments.length?(D=+b,a):D},a.x=function(b){return arguments.length?(v=b,u=b.copy(),z={x:0,y:0,k:1},a):v},a.y=function(b){return arguments.length?(x=b,w=b.copy(),z={x:0,y:0,k:1},a):x},bg.rebind(a,J,"on")};var Og,Pg,Qg=[0,1/0];bg.color=ga,ga.prototype.toString=function(){return this.rgb()+""},bg.hsl=ha;var Rg=ha.prototype=new ga;Rg.brighter=function(a){return a=Math.pow(.7,arguments.length?a:1),new ha(this.h,this.s,this.l/a)},Rg.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),new ha(this.h,this.s,a*this.l)},Rg.rgb=function(){return ia(this.h,this.s,this.l)},bg.hcl=ja;var Sg=ja.prototype=new ga;Sg.brighter=function(a){return new ja(this.h,this.c,Math.min(100,this.l+Tg*(arguments.length?a:1)))},Sg.darker=function(a){return new ja(this.h,this.c,Math.max(0,this.l-Tg*(arguments.length?a:1)))},Sg.rgb=function(){return ka(this.h,this.c,this.l).rgb()},bg.lab=la;var Tg=18,Ug=.95047,Vg=1,Wg=1.08883,Xg=la.prototype=new ga;Xg.brighter=function(a){return new la(Math.min(100,this.l+Tg*(arguments.length?a:1)),this.a,this.b)},Xg.darker=function(a){return new la(Math.max(0,this.l-Tg*(arguments.length?a:1)),this.a,this.b)},Xg.rgb=function(){return ma(this.l,this.a,this.b)},bg.rgb=ra;var Yg=ra.prototype=new ga;Yg.brighter=function(a){a=Math.pow(.7,arguments.length?a:1);var b=this.r,c=this.g,d=this.b,e=30;return b||c||d?(b&&e>b&&(b=e),c&&e>c&&(c=e),d&&e>d&&(d=e),new ra(Math.min(255,b/a),Math.min(255,c/a),Math.min(255,d/a))):new ra(e,e,e)},Yg.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),new ra(a*this.r,a*this.g,a*this.b)},Yg.hsl=function(){return wa(this.r,this.g,this.b)},Yg.toString=function(){return"#"+ua(this.r)+ua(this.g)+ua(this.b)};var Zg=bg.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Zg.forEach(function(a,b){Zg.set(a,sa(b))}),bg.functor=Aa,bg.xhr=Ba(s),bg.dsv=function(a,b){function c(a,c,f){arguments.length<3&&(f=c,c=null);var g=Ca(a,b,null==c?d:e(c),f);return g.row=function(a){return arguments.length?g.response(null==(c=a)?d:e(a)):c},g}function d(a){return c.parse(a.responseText)}function e(a){return function(b){return c.parse(b.responseText,a)}}function f(b){return b.map(g).join(a)}function g(a){return h.test(a)?'"'+a.replace(/\"/g,'""')+'"':a}var h=new RegExp('["'+a+"\n]"),i=a.charCodeAt(0);return c.parse=function(a,b){var d;return c.parseRows(a,function(a,c){if(d)return d(a,c-1);var e=new Function("d","return {"+a.map(function(a,b){return JSON.stringify(a)+": d["+b+"]"}).join(",")+"}");d=b?function(a,c){return b(e(a),c)}:e})},c.parseRows=function(a,b){function c(){if(k>=j)return g;if(e)return e=!1,f;var b=k;if(34===a.charCodeAt(b)){for(var c=b;c++k;){var d=a.charCodeAt(k++),h=1;if(10===d)e=!0;else if(13===d)e=!0,10===a.charCodeAt(k)&&(++k,++h);else if(d!==i)continue;return a.slice(b,k-h)}return a.slice(b)}for(var d,e,f={},g={},h=[],j=a.length,k=0,l=0;(d=c())!==g;){for(var m=[];d!==f&&d!==g;)m.push(d),d=c();b&&null==(m=b(m,l++))||h.push(m)}return h},c.format=function(b){if(Array.isArray(b[0]))return c.formatRows(b);var d=new r,e=[];return b.forEach(function(a){for(var b in a)d.has(b)||e.push(d.add(b))}),[e.map(g).join(a)].concat(b.map(function(b){return e.map(function(a){return g(b[a])}).join(a)})).join("\n")},c.formatRows=function(a){return a.map(f).join("\n")},c},bg.csv=bg.dsv(",","text/csv"),bg.tsv=bg.dsv(" ","text/tab-separated-values");var $g,_g,ah,bh,ch,dh=this[u(this,"requestAnimationFrame")]||function(a){setTimeout(a,17)};bg.timer=function(a,b,c){var d=arguments.length;2>d&&(b=0),3>d&&(c=Date.now());var e=c+b,f={c:a,t:e,f:!1,n:null};_g?_g.n=f:$g=f,_g=f,ah||(bh=clearTimeout(bh),ah=1,dh(Fa))},bg.timer.flush=function(){Ga(),Ha()},bg.round=function(a,b){return b?Math.round(a*(b=Math.pow(10,b)))/b:Math.round(a)};var eh=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(Ja);bg.formatPrefix=function(a,b){var c=0;return a&&(0>a&&(a*=-1),b&&(a=bg.round(a,Ia(a,b))),c=1+Math.floor(1e-12+Math.log(a)/Math.LN10),c=Math.max(-24,Math.min(24,3*Math.floor((c-1)/3)))),eh[8+c/3]};var fh=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,gh=bg.map({b:function(a){return a.toString(2)},c:function(a){return String.fromCharCode(a)},o:function(a){return a.toString(8)},x:function(a){return a.toString(16)},X:function(a){return a.toString(16).toUpperCase()},g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},r:function(a,b){return(a=bg.round(a,Ia(a,b))).toFixed(Math.max(0,Math.min(20,Ia(a*(1+1e-15),b))))}}),hh=bg.time={},ih=Date;Ma.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){jh.setUTCDate.apply(this._,arguments)},setDay:function(){jh.setUTCDay.apply(this._,arguments)},setFullYear:function(){jh.setUTCFullYear.apply(this._,arguments)},setHours:function(){jh.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){jh.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){jh.setUTCMinutes.apply(this._,arguments)},setMonth:function(){jh.setUTCMonth.apply(this._,arguments)},setSeconds:function(){jh.setUTCSeconds.apply(this._,arguments)},setTime:function(){jh.setTime.apply(this._,arguments)}};var jh=Date.prototype;hh.year=Na(function(a){return a=hh.day(a),a.setMonth(0,1),a},function(a,b){a.setFullYear(a.getFullYear()+b)},function(a){return a.getFullYear()}),hh.years=hh.year.range,hh.years.utc=hh.year.utc.range,hh.day=Na(function(a){var b=new ih(2e3,0);return b.setFullYear(a.getFullYear(),a.getMonth(),a.getDate()),b},function(a,b){a.setDate(a.getDate()+b)},function(a){return a.getDate()-1}),hh.days=hh.day.range,hh.days.utc=hh.day.utc.range,hh.dayOfYear=function(a){var b=hh.year(a);return Math.floor((a-b-6e4*(a.getTimezoneOffset()-b.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(a,b){b=7-b;var c=hh[a]=Na(function(a){return(a=hh.day(a)).setDate(a.getDate()-(a.getDay()+b)%7),a},function(a,b){a.setDate(a.getDate()+7*Math.floor(b))},function(a){var c=hh.year(a).getDay();return Math.floor((hh.dayOfYear(a)+(c+b)%7)/7)-(c!==b)});hh[a+"s"]=c.range,hh[a+"s"].utc=c.utc.range,hh[a+"OfYear"]=function(a){var c=hh.year(a).getDay();return Math.floor((hh.dayOfYear(a)+(c+b)%7)/7)}}),hh.week=hh.sunday,hh.weeks=hh.sunday.range,hh.weeks.utc=hh.sunday.utc.range,hh.weekOfYear=hh.sundayOfYear;var kh={"-":"",_:" ",0:"0"},lh=/^\s*\d+/,mh=/^%/;bg.locale=function(a){return{numberFormat:Ka(a),timeFormat:Pa(a)}};var nh=bg.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});bg.format=nh.numberFormat,bg.geo={},ib.prototype={s:0,t:0,add:function(a){jb(a,this.t,oh), +jb(oh.s,this.s,this),this.s?this.t+=oh.t:this.s=oh.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var oh=new ib;bg.geo.stream=function(a,b){a&&ph.hasOwnProperty(a.type)?ph[a.type](a,b):kb(a,b)};var ph={Feature:function(a,b){kb(a.geometry,b)},FeatureCollection:function(a,b){for(var c=a.features,d=-1,e=c.length;++da?4*Fg+a:a,th.lineStart=th.lineEnd=th.point=v}};bg.geo.bounds=function(){function a(a,b){t.push(u=[k=a,m=a]),l>b&&(l=b),b>n&&(n=b)}function b(b,c){var d=ob([b*Jg,c*Jg]);if(r){var e=qb(r,d),f=[e[1],-e[0],0],g=qb(f,e);tb(g),g=ub(g);var i=b-o,j=i>0?1:-1,p=g[0]*Kg*j,q=ng(i)>180;if(q^(p>j*o&&j*b>p)){var s=g[1]*Kg;s>n&&(n=s)}else if(p=(p+360)%360-180,q^(p>j*o&&j*b>p)){var s=-g[1]*Kg;l>s&&(l=s)}else l>c&&(l=c),c>n&&(n=c);q?o>b?h(k,b)>h(k,m)&&(m=b):h(b,m)>h(k,m)&&(k=b):m>=k?(k>b&&(k=b),b>m&&(m=b)):b>o?h(k,b)>h(k,m)&&(m=b):h(b,m)>h(k,m)&&(k=b)}else a(b,c);r=d,o=b}function c(){v.point=b}function d(){u[0]=k,u[1]=m,v.point=a,r=null}function e(a,c){if(r){var d=a-o;s+=ng(d)>180?d+(d>0?360:-360):d}else p=a,q=c;th.point(a,c),b(a,c)}function f(){th.lineStart()}function g(){e(p,q),th.lineEnd(),ng(s)>Dg&&(k=-(m=180)),u[0]=k,u[1]=m,r=null}function h(a,b){return(b-=a)<0?b+360:b}function i(a,b){return a[0]-b[0]}function j(a,b){return b[0]<=b[1]?b[0]<=a&&a<=b[1]:ash?(k=-(m=180),l=-(n=90)):s>Dg?n=90:-Dg>s&&(l=-90),u[0]=k,u[1]=m}};return function(a){n=m=-(k=l=1/0),t=[],bg.geo.stream(a,v);var b=t.length;if(b){t.sort(i);for(var c,d=1,e=t[0],f=[e];b>d;++d)c=t[d],j(c[0],e)||j(c[1],e)?(h(e[0],c[1])>h(e[0],e[1])&&(e[1]=c[1]),h(c[0],e[1])>h(e[0],e[1])&&(e[0]=c[0])):f.push(e=c);for(var g,c,o=-(1/0),b=f.length-1,d=0,e=f[b];b>=d;e=c,++d)c=f[d],(g=h(e[1],c[0]))>o&&(o=g,k=c[0],m=e[1])}return t=u=null,k===1/0||l===1/0?[[0/0,0/0],[0/0,0/0]]:[[k,l],[m,n]]}}(),bg.geo.centroid=function(a){uh=vh=wh=xh=yh=zh=Ah=Bh=Ch=Dh=Eh=0,bg.geo.stream(a,Fh);var b=Ch,c=Dh,d=Eh,e=b*b+c*c+d*d;return Eg>e&&(b=zh,c=Ah,d=Bh,Dg>vh&&(b=wh,c=xh,d=yh),e=b*b+c*c+d*d,Eg>e)?[0/0,0/0]:[Math.atan2(c,b)*Kg,ba(d/Math.sqrt(e))*Kg]};var uh,vh,wh,xh,yh,zh,Ah,Bh,Ch,Dh,Eh,Fh={sphere:v,point:wb,lineStart:yb,lineEnd:zb,polygonStart:function(){Fh.lineStart=Ab},polygonEnd:function(){Fh.lineStart=yb}},Gh=Gb(Cb,Kb,Mb,[-Fg,-Fg/2]),Hh=1e9;bg.geo.clipExtent=function(){var a,b,c,d,e,f,g={stream:function(a){return e&&(e.valid=!1),e=f(a),e.valid=!0,e},extent:function(h){return arguments.length?(f=Qb(a=+h[0][0],b=+h[0][1],c=+h[1][0],d=+h[1][1]),e&&(e.valid=!1,e=null),g):[[a,b],[c,d]]}};return g.extent([[0,0],[960,500]])},(bg.geo.conicEqualArea=function(){return Rb(Sb)}).raw=Sb,bg.geo.albers=function(){return bg.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},bg.geo.albersUsa=function(){function a(a){var f=a[0],g=a[1];return b=null,c(f,g),b||(d(f,g),b)||e(f,g),b}var b,c,d,e,f=bg.geo.albers(),g=bg.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),h=bg.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),i={point:function(a,c){b=[a,c]}};return a.invert=function(a){var b=f.scale(),c=f.translate(),d=(a[0]-c[0])/b,e=(a[1]-c[1])/b;return(e>=.12&&.234>e&&d>=-.425&&-.214>d?g:e>=.166&&.234>e&&d>=-.214&&-.115>d?h:f).invert(a)},a.stream=function(a){var b=f.stream(a),c=g.stream(a),d=h.stream(a);return{point:function(a,e){b.point(a,e),c.point(a,e),d.point(a,e)},sphere:function(){b.sphere(),c.sphere(),d.sphere()},lineStart:function(){b.lineStart(),c.lineStart(),d.lineStart()},lineEnd:function(){b.lineEnd(),c.lineEnd(),d.lineEnd()},polygonStart:function(){b.polygonStart(),c.polygonStart(),d.polygonStart()},polygonEnd:function(){b.polygonEnd(),c.polygonEnd(),d.polygonEnd()}}},a.precision=function(b){return arguments.length?(f.precision(b),g.precision(b),h.precision(b),a):f.precision()},a.scale=function(b){return arguments.length?(f.scale(b),g.scale(.35*b),h.scale(b),a.translate(f.translate())):f.scale()},a.translate=function(b){if(!arguments.length)return f.translate();var j=f.scale(),k=+b[0],l=+b[1];return c=f.translate(b).clipExtent([[k-.455*j,l-.238*j],[k+.455*j,l+.238*j]]).stream(i).point,d=g.translate([k-.307*j,l+.201*j]).clipExtent([[k-.425*j+Dg,l+.12*j+Dg],[k-.214*j-Dg,l+.234*j-Dg]]).stream(i).point,e=h.translate([k-.205*j,l+.212*j]).clipExtent([[k-.214*j+Dg,l+.166*j+Dg],[k-.115*j-Dg,l+.234*j-Dg]]).stream(i).point,a},a.scale(1070)};var Ih,Jh,Kh,Lh,Mh,Nh,Oh={point:v,lineStart:v,lineEnd:v,polygonStart:function(){Jh=0,Oh.lineStart=Tb},polygonEnd:function(){Oh.lineStart=Oh.lineEnd=Oh.point=v,Ih+=ng(Jh/2)}},Ph={point:Ub,lineStart:v,lineEnd:v,polygonStart:v,polygonEnd:v},Qh={point:Xb,lineStart:Yb,lineEnd:Zb,polygonStart:function(){Qh.lineStart=$b},polygonEnd:function(){Qh.point=Xb,Qh.lineStart=Yb,Qh.lineEnd=Zb}};bg.geo.path=function(){function a(a){return a&&("function"==typeof h&&f.pointRadius(+h.apply(this,arguments)),g&&g.valid||(g=e(f)),bg.geo.stream(a,g)),f.result()}function b(){return g=null,a}var c,d,e,f,g,h=4.5;return a.area=function(a){return Ih=0,bg.geo.stream(a,e(Oh)),Ih},a.centroid=function(a){return wh=xh=yh=zh=Ah=Bh=Ch=Dh=Eh=0,bg.geo.stream(a,e(Qh)),Eh?[Ch/Eh,Dh/Eh]:Bh?[zh/Bh,Ah/Bh]:yh?[wh/yh,xh/yh]:[0/0,0/0]},a.bounds=function(a){return Mh=Nh=-(Kh=Lh=1/0),bg.geo.stream(a,e(Ph)),[[Kh,Lh],[Mh,Nh]]},a.projection=function(a){return arguments.length?(e=(c=a)?a.stream||bc(a):s,b()):c},a.context=function(a){return arguments.length?(f=null==(d=a)?new Vb:new _b(a),"function"!=typeof h&&f.pointRadius(h),b()):d},a.pointRadius=function(b){return arguments.length?(h="function"==typeof b?b:(f.pointRadius(+b),+b),a):h},a.projection(bg.geo.albersUsa()).context(null)},bg.geo.transform=function(a){return{stream:function(b){var c=new cc(b);for(var d in a)c[d]=a[d];return c}}},cc.prototype={point:function(a,b){this.stream.point(a,b)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},bg.geo.projection=ec,bg.geo.projectionMutator=fc,(bg.geo.equirectangular=function(){return ec(hc)}).raw=hc.invert=hc,bg.geo.rotation=function(a){function b(b){return b=a(b[0]*Jg,b[1]*Jg),b[0]*=Kg,b[1]*=Kg,b}return a=jc(a[0]%360*Jg,a[1]*Jg,a.length>2?a[2]*Jg:0),b.invert=function(b){return b=a.invert(b[0]*Jg,b[1]*Jg),b[0]*=Kg,b[1]*=Kg,b},b},ic.invert=hc,bg.geo.circle=function(){function a(){var a="function"==typeof d?d.apply(this,arguments):d,b=jc(-a[0]*Jg,-a[1]*Jg,0).invert,e=[];return c(null,null,1,{point:function(a,c){e.push(a=b(a,c)),a[0]*=Kg,a[1]*=Kg}}),{type:"Polygon",coordinates:[e]}}var b,c,d=[0,0],e=6;return a.origin=function(b){return arguments.length?(d=b,a):d},a.angle=function(d){return arguments.length?(c=nc((b=+d)*Jg,e*Jg),a):b},a.precision=function(d){return arguments.length?(c=nc(b*Jg,(e=+d)*Jg),a):e},a.angle(90)},bg.geo.distance=function(a,b){var c,d=(b[0]-a[0])*Jg,e=a[1]*Jg,f=b[1]*Jg,g=Math.sin(d),h=Math.cos(d),i=Math.sin(e),j=Math.cos(e),k=Math.sin(f),l=Math.cos(f);return Math.atan2(Math.sqrt((c=l*g)*c+(c=j*k-i*l*h)*c),i*k+j*l*h)},bg.geo.graticule=function(){function a(){return{type:"MultiLineString",coordinates:b()}}function b(){return bg.range(Math.ceil(f/q)*q,e,q).map(m).concat(bg.range(Math.ceil(j/r)*r,i,r).map(n)).concat(bg.range(Math.ceil(d/o)*o,c,o).filter(function(a){return ng(a%q)>Dg}).map(k)).concat(bg.range(Math.ceil(h/p)*p,g,p).filter(function(a){return ng(a%r)>Dg}).map(l))}var c,d,e,f,g,h,i,j,k,l,m,n,o=10,p=o,q=90,r=360,s=2.5;return a.lines=function(){return b().map(function(a){return{type:"LineString",coordinates:a}})},a.outline=function(){return{type:"Polygon",coordinates:[m(f).concat(n(i).slice(1),m(e).reverse().slice(1),n(j).reverse().slice(1))]}},a.extent=function(b){return arguments.length?a.majorExtent(b).minorExtent(b):a.minorExtent()},a.majorExtent=function(b){return arguments.length?(f=+b[0][0],e=+b[1][0],j=+b[0][1],i=+b[1][1],f>e&&(b=f,f=e,e=b),j>i&&(b=j,j=i,i=b),a.precision(s)):[[f,j],[e,i]]},a.minorExtent=function(b){return arguments.length?(d=+b[0][0],c=+b[1][0],h=+b[0][1],g=+b[1][1],d>c&&(b=d,d=c,c=b),h>g&&(b=h,h=g,g=b),a.precision(s)):[[d,h],[c,g]]},a.step=function(b){return arguments.length?a.majorStep(b).minorStep(b):a.minorStep()},a.majorStep=function(b){return arguments.length?(q=+b[0],r=+b[1],a):[q,r]},a.minorStep=function(b){return arguments.length?(o=+b[0],p=+b[1],a):[o,p]},a.precision=function(b){return arguments.length?(s=+b,k=pc(h,g,90),l=qc(d,c,s),m=pc(j,i,90),n=qc(f,e,s),a):s},a.majorExtent([[-180,-90+Dg],[180,90-Dg]]).minorExtent([[-180,-80-Dg],[180,80+Dg]])},bg.geo.greatArc=function(){function a(){return{type:"LineString",coordinates:[b||d.apply(this,arguments),c||e.apply(this,arguments)]}}var b,c,d=rc,e=sc;return a.distance=function(){return bg.geo.distance(b||d.apply(this,arguments),c||e.apply(this,arguments))},a.source=function(c){return arguments.length?(d=c,b="function"==typeof c?null:c,a):d},a.target=function(b){return arguments.length?(e=b,c="function"==typeof b?null:b,a):e},a.precision=function(){return arguments.length?a:0},a},bg.geo.interpolate=function(a,b){return tc(a[0]*Jg,a[1]*Jg,b[0]*Jg,b[1]*Jg)},bg.geo.length=function(a){return Rh=0,bg.geo.stream(a,Sh),Rh};var Rh,Sh={sphere:v,point:v,lineStart:uc,lineEnd:v,polygonStart:v,polygonEnd:v},Th=vc(function(a){return Math.sqrt(2/(1+a))},function(a){return 2*Math.asin(a/2)});(bg.geo.azimuthalEqualArea=function(){return ec(Th)}).raw=Th;var Uh=vc(function(a){var b=Math.acos(a);return b&&b/Math.sin(b)},s);(bg.geo.azimuthalEquidistant=function(){return ec(Uh)}).raw=Uh,(bg.geo.conicConformal=function(){return Rb(wc)}).raw=wc,(bg.geo.conicEquidistant=function(){return Rb(xc)}).raw=xc;var Vh=vc(function(a){return 1/a},Math.atan);(bg.geo.gnomonic=function(){return ec(Vh)}).raw=Vh,yc.invert=function(a,b){return[a,2*Math.atan(Math.exp(b))-Ig]},(bg.geo.mercator=function(){return zc(yc)}).raw=yc;var Wh=vc(function(){return 1},Math.asin);(bg.geo.orthographic=function(){return ec(Wh)}).raw=Wh;var Xh=vc(function(a){return 1/(1+a)},function(a){return 2*Math.atan(a)});(bg.geo.stereographic=function(){return ec(Xh)}).raw=Xh,Ac.invert=function(a,b){return[-b,2*Math.atan(Math.exp(a))-Ig]},(bg.geo.transverseMercator=function(){var a=zc(Ac),b=a.center,c=a.rotate;return a.center=function(a){return a?b([-a[1],a[0]]):(a=b(),[a[1],-a[0]])},a.rotate=function(a){return a?c([a[0],a[1],a.length>2?a[2]+90:90]):(a=c(),[a[0],a[1],a[2]-90])},c([0,0,90])}).raw=Ac,bg.geom={},bg.geom.hull=function(a){function b(a){if(a.length<3)return[];var b,e=Aa(c),f=Aa(d),g=a.length,h=[],i=[];for(b=0;g>b;b++)h.push([+e.call(this,a[b],b),+f.call(this,a[b],b),b]);for(h.sort(Ec),b=0;g>b;b++)i.push([h[b][0],-h[b][1]]);var j=Dc(h),k=Dc(i),l=k[0]===j[0],m=k[k.length-1]===j[j.length-1],n=[];for(b=j.length-1;b>=0;--b)n.push(a[h[j[b]][2]]);for(b=+l;b=d&&j.x<=f&&j.y>=e&&j.y<=g?[[d,g],[f,g],[f,e],[d,e]]:[];k.point=a[h]}),b}function c(a){return a.map(function(a,b){return{x:Math.round(f(a,b)/Dg)*Dg,y:Math.round(g(a,b)/Dg)*Dg,i:b}})}var d=Bc,e=Cc,f=d,g=e,h=ei;return a?b(a):(b.links=function(a){return fd(c(a)).edges.filter(function(a){return a.l&&a.r}).map(function(b){return{source:a[b.l.i],target:a[b.r.i]}})},b.triangles=function(a){var b=[];return fd(c(a)).cells.forEach(function(c,d){for(var e,f,g=c.site,h=c.edges.sort(Rc),i=-1,j=h.length,k=h[j-1].edge,l=k.l===g?k.r:k.l;++i=j,m=d>=k,n=m<<1|l;a.leaf=!1,a=a.nodes[n]||(a.nodes[n]=kd()),l?e=j:h=j,m?g=k:i=k,f(a,b,c,d,e,g,h,i)}var k,l,m,n,o,p,q,r,s,t=Aa(h),u=Aa(i);if(null!=b)p=b,q=c,r=d,s=e;else if(r=s=-(p=q=1/0),l=[],m=[],o=a.length,g)for(n=0;o>n;++n)k=a[n],k.xr&&(r=k.x),k.y>s&&(s=k.y),l.push(k.x),m.push(k.y);else for(n=0;o>n;++n){var v=+t(k=a[n],n),w=+u(k,n);p>v&&(p=v),q>w&&(q=w),v>r&&(r=v),w>s&&(s=w),l.push(v),m.push(w)}var x=r-p,y=s-q;x>y?s=q+x:r=p+y;var z=kd();if(z.add=function(a){f(z,a,+t(a,++n),+u(a,n),p,q,r,s)},z.visit=function(a){ld(a,z,p,q,r,s)},z.find=function(a){return md(z,a[0],a[1],p,q,r,s)},n=-1,null==b){for(;++n=0?a.slice(0,b):a,d=b>=0?a.slice(b+1):"in";return c=ii.get(c)||hi,d=ji.get(d)||s,td(d(c.apply(null,cg.call(arguments,1))))},bg.interpolateHcl=Gd,bg.interpolateHsl=Hd,bg.interpolateLab=Id,bg.interpolateRound=Jd,bg.transform=function(a){var b=eg.createElementNS(bg.ns.prefix.svg,"g");return(bg.transform=function(a){if(null!=a){b.setAttribute("transform",a);var c=b.transform.baseVal.consolidate()}return new Kd(c?c.matrix:ki)})(a)},Kd.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ki={a:1,b:0,c:0,d:1,e:0,f:0};bg.interpolateTransform=Od,bg.layout={},bg.layout.bundle=function(){return function(a){for(var b=[],c=-1,d=a.length;++ch*h/q){if(o>i){var j=b.charge/i;a.px-=f*j,a.py-=g*j}return!0}if(b.point&&i&&o>i){var j=b.pointCharge/i;a.px-=f*j,a.py-=g*j}}return!b.charge}}function b(a){a.px=bg.event.x,a.py=bg.event.y,h.resume()}var c,d,e,f,g,h={},i=bg.dispatch("start","tick","end"),j=[1,1],k=.9,l=li,m=mi,n=-30,o=ni,p=.1,q=.64,r=[],t=[];return h.tick=function(){if((d*=.99)<.005)return i.end({type:"end",alpha:d=0}),!0;var b,c,h,l,m,o,q,s,u,v=r.length,w=t.length;for(c=0;w>c;++c)h=t[c],l=h.source,m=h.target,s=m.x-l.x,u=m.y-l.y,(o=s*s+u*u)&&(o=d*f[c]*((o=Math.sqrt(o))-e[c])/o,s*=o,u*=o,m.x-=s*(q=l.weight/(m.weight+l.weight)),m.y-=u*q,l.x+=s*(q=1-q),l.y+=u*q);if((q=d*p)&&(s=j[0]/2,u=j[1]/2,c=-1,q))for(;++c0?a:0:a>0&&(i.start({type:"start",alpha:d=a}),bg.timer(h.tick)),h):d},h.start=function(){function a(a,d){if(!c){for(c=new Array(i),h=0;i>h;++h)c[h]=[];for(h=0;k>h;++h){var e=t[h];c[e.source.index].push(e.target),c[e.target.index].push(e.source)}}for(var f,g=c[b],h=-1,j=g.length;++hb;++b)(d=r[b]).index=b,d.weight=0;for(b=0;k>b;++b)d=t[b],"number"==typeof d.source&&(d.source=r[d.source]),"number"==typeof d.target&&(d.target=r[d.target]),++d.source.weight,++d.target.weight;for(b=0;i>b;++b)d=r[b],isNaN(d.x)&&(d.x=a("x",o)),isNaN(d.y)&&(d.y=a("y",p)),isNaN(d.px)&&(d.px=d.x),isNaN(d.py)&&(d.py=d.y);if(e=[],"function"==typeof l)for(b=0;k>b;++b)e[b]=+l.call(this,t[b],b);else for(b=0;k>b;++b)e[b]=l;if(f=[],"function"==typeof m)for(b=0;k>b;++b)f[b]=+m.call(this,t[b],b);else for(b=0;k>b;++b)f[b]=m;if(g=[],"function"==typeof n)for(b=0;i>b;++b)g[b]=+n.call(this,r[b],b);else for(b=0;i>b;++b)g[b]=n;return h.resume()},h.resume=function(){return h.alpha(.1)},h.stop=function(){return h.alpha(0)},h.drag=function(){return c||(c=bg.behavior.drag().origin(s).on("dragstart.force",Ud).on("drag.force",b).on("dragend.force",Vd)),arguments.length?void this.on("mouseover.force",Wd).on("mouseout.force",Xd).call(c):c},bg.rebind(h,i,"on")};var li=20,mi=1,ni=1/0;bg.layout.hierarchy=function(){function a(e){var f,g=[e],h=[];for(e.depth=0;null!=(f=g.pop());)if(h.push(f),(j=c.call(a,f,f.depth))&&(i=j.length)){for(var i,j,k;--i>=0;)g.push(k=j[i]),k.parent=f,k.depth=f.depth+1;d&&(f.value=0),f.children=j}else d&&(f.value=+d.call(a,f,f.depth)||0),delete f.children;return _d(e,function(a){var c,e;b&&(c=a.children)&&c.sort(b),d&&(e=a.parent)&&(e.value+=a.value)}),h}var b=ce,c=ae,d=be;return a.sort=function(c){return arguments.length?(b=c,a):b},a.children=function(b){return arguments.length?(c=b,a):c},a.value=function(b){return arguments.length?(d=b,a):d},a.revalue=function(b){return d&&($d(b,function(a){a.children&&(a.value=0)}),_d(b,function(b){var c;b.children||(b.value=+d.call(a,b,b.depth)||0),(c=b.parent)&&(c.value+=b.value)})),b},a},bg.layout.partition=function(){function a(b,c,d,e){var f=b.children;if(b.x=c,b.y=b.depth*e,b.dx=d,b.dy=e,f&&(g=f.length)){var g,h,i,j=-1;for(d=b.value?d/b.value:0;++jl?-1:1),o=(l-i*n)/bg.sum(j),p=bg.range(i),q=[];return null!=c&&p.sort(c===oi?function(a,b){return j[b]-j[a]}:function(a,b){return c(g[a],g[b])}),p.forEach(function(a){q[a]={data:g[a],value:h=j[a],startAngle:k,endAngle:k+=h*o+n,padAngle:m}}),q}var b=Number,c=oi,d=0,e=Gg,f=0;return a.value=function(c){return arguments.length?(b=c,a):b},a.sort=function(b){return arguments.length?(c=b,a):c},a.startAngle=function(b){return arguments.length?(d=b,a):d},a.endAngle=function(b){return arguments.length?(e=b,a):e},a.padAngle=function(b){return arguments.length?(f=b,a):f},a};var oi={};bg.layout.stack=function(){function a(h,i){if(!(m=h.length))return h;var j=h.map(function(c,d){return b.call(a,c,d)}),k=j.map(function(b){return b.map(function(b,c){return[f.call(a,b,c),g.call(a,b,c)]})}),l=c.call(a,k,i);j=bg.permute(j,l),k=bg.permute(k,l);var m,n,o,p,q=d.call(a,k,i),r=j[0].length;for(o=0;r>o;++o)for(e.call(a,j[0][o],p=q[o],k[0][o][1]),n=1;m>n;++n)e.call(a,j[n][o],p+=k[n-1][o][1],k[n][o][1]);return h}var b=s,c=he,d=ie,e=ge,f=ee,g=fe;return a.values=function(c){return arguments.length?(b=c,a):b},a.order=function(b){return arguments.length?(c="function"==typeof b?b:pi.get(b)||he,a):c},a.offset=function(b){return arguments.length?(d="function"==typeof b?b:qi.get(b)||ie,a):d},a.x=function(b){return arguments.length?(f=b,a):f},a.y=function(b){return arguments.length?(g=b,a):g},a.out=function(b){return arguments.length?(e=b,a):e},a};var pi=bg.map({"inside-out":function(a){var b,c,d=a.length,e=a.map(je),f=a.map(ke),g=bg.range(d).sort(function(a,b){return e[a]-e[b]}),h=0,i=0,j=[],k=[];for(b=0;d>b;++b)c=g[b],i>h?(h+=f[c],j.push(c)):(i+=f[c],k.push(c));return k.reverse().concat(j)},reverse:function(a){return bg.range(a.length).reverse()},"default":he}),qi=bg.map({silhouette:function(a){var b,c,d,e=a.length,f=a[0].length,g=[],h=0,i=[];for(c=0;f>c;++c){for(b=0,d=0;e>b;b++)d+=a[b][c][1];d>h&&(h=d),g.push(d)}for(c=0;f>c;++c)i[c]=(h-g[c])/2;return i},wiggle:function(a){var b,c,d,e,f,g,h,i,j,k=a.length,l=a[0],m=l.length,n=[];for(n[0]=i=j=0,c=1;m>c;++c){for(b=0,e=0;k>b;++b)e+=a[b][c][1];for(b=0,f=0,h=l[c][0]-l[c-1][0];k>b;++b){for(d=0,g=(a[b][c][1]-a[b][c-1][1])/(2*h);b>d;++d)g+=(a[d][c][1]-a[d][c-1][1])/h;f+=g*a[b][c][1]}n[c]=i-=e?f/e*h:0,j>i&&(j=i)}for(c=0;m>c;++c)n[c]-=j;return n},expand:function(a){var b,c,d,e=a.length,f=a[0].length,g=1/e,h=[];for(c=0;f>c;++c){for(b=0,d=0;e>b;b++)d+=a[b][c][1];if(d)for(b=0;e>b;b++)a[b][c][1]/=d;else for(b=0;e>b;b++)a[b][c][1]=g}for(c=0;f>c;++c)h[c]=0;return h},zero:ie});bg.layout.histogram=function(){function a(a,f){for(var g,h,i=[],j=a.map(c,this),k=d.call(this,j,f),l=e.call(this,k,j,f),f=-1,m=j.length,n=l.length-1,o=b?1:1/m;++f0)for(f=-1;++f=k[0]&&h<=k[1]&&(g=i[bg.bisect(l,h,1,n)-1],g.y+=o,g.push(a[f]));return i}var b=!0,c=Number,d=oe,e=me;return a.value=function(b){return arguments.length?(c=b,a):c},a.range=function(b){return arguments.length?(d=Aa(b),a):d},a.bins=function(b){return arguments.length?(e="number"==typeof b?function(a){return ne(a,b)}:Aa(b),a):e},a.frequency=function(c){return arguments.length?(b=!!c,a):b},a},bg.layout.pack=function(){function a(a,f){var g=c.call(this,a,f),h=g[0],i=e[0],j=e[1],k=null==b?Math.sqrt:"function"==typeof b?b:function(){return b};if(h.x=h.y=0,_d(h,function(a){a.r=+k(a.value)}),_d(h,te),d){var l=d*(b?1:Math.max(2*h.r/i,2*h.r/j))/2;_d(h,function(a){a.r+=l}),_d(h,te),_d(h,function(a){a.r-=l})}return we(h,i/2,j/2,b?1:1/Math.max(2*h.r/i,2*h.r/j)),g}var b,c=bg.layout.hierarchy().sort(pe),d=0,e=[1,1];return a.size=function(b){return arguments.length?(e=b,a):e},a.radius=function(c){return arguments.length?(b=null==c||"function"==typeof c?c:+c,a):b},a.padding=function(b){return arguments.length?(d=+b,a):d},Zd(a,c)},bg.layout.tree=function(){function a(a,e){var k=g.call(this,a,e),l=k[0],m=b(l);if(_d(m,c),m.parent.m=-m.z,$d(m,d),j)$d(l,f);else{var n=l,o=l,p=l;$d(l,function(a){a.xo.x&&(o=a),a.depth>p.depth&&(p=a)});var q=h(n,o)/2-n.x,r=i[0]/(o.x+h(o,n)/2+q),s=i[1]/(p.depth||1);$d(l,function(a){a.x=(a.x+q)*r,a.y=a.depth*s})}return k}function b(a){for(var b,c={A:null,children:[a]},d=[c];null!=(b=d.pop());)for(var e,f=b.children,g=0,h=f.length;h>g;++g)d.push((f[g]=e={_:f[g],parent:b,children:(e=f[g].children)&&e.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:g}).a=e);return c.children[0]}function c(a){var b=a.children,c=a.parent.children,d=a.i?c[a.i-1]:null;if(b.length){Ce(a);var f=(b[0].z+b[b.length-1].z)/2;d?(a.z=d.z+h(a._,d._),a.m=a.z-f):a.z=f}else d&&(a.z=d.z+h(a._,d._));a.parent.A=e(a,d,a.parent.A||c[0])}function d(a){a._.x=a.z+a.parent.m,a.m+=a.parent.m}function e(a,b,c){if(b){for(var d,e=a,f=a,g=b,i=e.parent.children[0],j=e.m,k=f.m,l=g.m,m=i.m;g=Ae(g),e=ze(e),g&&e;)i=ze(i),f=Ae(f),f.a=a,d=g.z+l-e.z-j+h(g._,e._),d>0&&(Be(De(g,a,c),a,d),j+=d,k+=d),l+=g.m,j+=e.m,m+=i.m,k+=f.m;g&&!Ae(f)&&(f.t=g,f.m+=l-k),e&&!ze(i)&&(i.t=e,i.m+=j-m,c=a)}return c}function f(a){a.x*=i[0],a.y=a.depth*i[1]}var g=bg.layout.hierarchy().sort(null).value(null),h=ye,i=[1,1],j=null;return a.separation=function(b){return arguments.length?(h=b,a):h},a.size=function(b){return arguments.length?(j=null==(i=b)?f:null,a):j?null:i},a.nodeSize=function(b){return arguments.length?(j=null==(i=b)?null:f,a):j?i:null},Zd(a,g)},bg.layout.cluster=function(){function a(a,f){var g,h=b.call(this,a,f),i=h[0],j=0;_d(i,function(a){var b=a.children;b&&b.length?(a.x=Fe(b),a.y=Ee(b)):(a.x=g?j+=c(a,g):0,a.y=0,g=a)});var k=Ge(i),l=He(i),m=k.x-c(k,l)/2,n=l.x+c(l,k)/2;return _d(i,e?function(a){a.x=(a.x-i.x)*d[0],a.y=(i.y-a.y)*d[1]}:function(a){a.x=(a.x-m)/(n-m)*d[0],a.y=(1-(i.y?a.y/i.y:1))*d[1]}),h}var b=bg.layout.hierarchy().sort(null).value(null),c=ye,d=[1,1],e=!1;return a.separation=function(b){return arguments.length?(c=b,a):c},a.size=function(b){return arguments.length?(e=null==(d=b),a):e?null:d},a.nodeSize=function(b){return arguments.length?(e=null!=(d=b),a):e?d:null},Zd(a,b)},bg.layout.treemap=function(){function a(a,b){for(var c,d,e=-1,f=a.length;++eb?0:b),c.area=isNaN(d)||0>=d?0:d}function b(c){var f=c.children;if(f&&f.length){var g,h,i,j=l(c),k=[],m=f.slice(),o=1/0,p="slice"===n?j.dx:"dice"===n?j.dy:"slice-dice"===n?1&c.depth?j.dy:j.dx:Math.min(j.dx,j.dy);for(a(m,j.dx*j.dy/c.value),k.area=0;(i=m.length)>0;)k.push(g=m[i-1]),k.area+=g.area,"squarify"!==n||(h=d(k,p))<=o?(m.pop(),o=h):(k.area-=k.pop().area,e(k,p,j,!1),p=Math.min(j.dx,j.dy),k.length=k.area=0,o=1/0);k.length&&(e(k,p,j,!0),k.length=k.area=0),f.forEach(b)}}function c(b){var d=b.children;if(d&&d.length){var f,g=l(b),h=d.slice(),i=[];for(a(h,g.dx*g.dy/b.value),i.area=0;f=h.pop();)i.push(f),i.area+=f.area,null!=f.z&&(e(i,f.z?g.dx:g.dy,g,!h.length),i.length=i.area=0);d.forEach(c)}}function d(a,b){for(var c,d=a.area,e=0,f=1/0,g=-1,h=a.length;++gc&&(f=c),c>e&&(e=c));return d*=d,b*=b,d?Math.max(b*e*o/d,d/(b*f*o)):1/0}function e(a,b,c,d){var e,f=-1,g=a.length,h=c.x,j=c.y,k=b?i(a.area/b):0;if(b==c.dx){for((d||k>c.dy)&&(k=c.dy);++fc.dx)&&(k=c.dx);++fc&&(b=1),1>c&&(a=0),function(){var c,d,e;do c=2*Math.random()-1,d=2*Math.random()-1,e=c*c+d*d;while(!e||e>1);return a+b*c*Math.sqrt(-2*Math.log(e)/e)}},logNormal:function(){var a=bg.random.normal.apply(bg,arguments);return function(){return Math.exp(a())}},bates:function(a){var b=bg.random.irwinHall(a);return function(){return b()/a}},irwinHall:function(a){return function(){for(var b=0,c=0;a>c;c++)b+=Math.random();return b}}},bg.scale={};var ri={floor:s,ceil:s};bg.scale.linear=function(){return Qe([0,1],[0,1],rd,!1)};var si={s:1,g:1,p:1,r:1,e:1};bg.scale.log=function(){return Ye(bg.scale.linear().domain([0,1]),10,!0,[1,10])};var ti=bg.format(".0e"),ui={floor:function(a){return-Math.ceil(-a)},ceil:function(a){return-Math.floor(-a)}};bg.scale.pow=function(){return Ze(bg.scale.linear(),1,[0,1])},bg.scale.sqrt=function(){return bg.scale.pow().exponent(.5)},bg.scale.ordinal=function(){return _e([],{t:"range",a:[[]]})},bg.scale.category10=function(){return bg.scale.ordinal().range(vi)},bg.scale.category20=function(){return bg.scale.ordinal().range(wi)},bg.scale.category20b=function(){return bg.scale.ordinal().range(xi)},bg.scale.category20c=function(){return bg.scale.ordinal().range(yi)};var vi=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(ta),wi=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(ta),xi=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(ta),yi=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(ta);bg.scale.quantile=function(){return af([],[])},bg.scale.quantize=function(){return bf(0,1,[0,1])},bg.scale.threshold=function(){return cf([.5],[0,1])},bg.scale.identity=function(){return df([0,1])},bg.svg={},bg.svg.arc=function(){function a(){var a=Math.max(0,+c.apply(this,arguments)),j=Math.max(0,+d.apply(this,arguments)),k=g.apply(this,arguments)-Ig,l=h.apply(this,arguments)-Ig,m=Math.abs(l-k),n=k>l?0:1;if(a>j&&(o=j,j=a,a=o),m>=Hg)return b(j,n)+(a?b(a,1-n):"")+"Z";var o,p,q,r,s,t,u,v,w,x,y,z,A=0,B=0,C=[];if((r=(+i.apply(this,arguments)||0)/2)&&(q=f===zi?Math.sqrt(a*a+j*j):+f.apply(this,arguments),n||(B*=-1),j&&(B=ba(q/j*Math.sin(r))),a&&(A=ba(q/a*Math.sin(r)))),j){s=j*Math.cos(k+B),t=j*Math.sin(k+B),u=j*Math.cos(l-B),v=j*Math.sin(l-B);var D=Math.abs(l-k-2*B)<=Fg?0:1;if(B&&lf(s,t,u,v)===n^D){var E=(k+l)/2;s=j*Math.cos(E),t=j*Math.sin(E),u=v=null}}else s=t=0;if(a){w=a*Math.cos(l-A),x=a*Math.sin(l-A),y=a*Math.cos(k+A),z=a*Math.sin(k+A);var F=Math.abs(k-l+2*A)<=Fg?0:1;if(A&&lf(w,x,y,z)===1-n^F){var G=(k+l)/2;w=a*Math.cos(G),x=a*Math.sin(G),y=z=null}}else w=x=0;if((o=Math.min(Math.abs(j-a)/2,+e.apply(this,arguments)))>.001){p=j>a^n?0:1;var H=null==y?[w,x]:null==u?[s,t]:Gc([s,t],[y,z],[u,v],[w,x]),I=s-H[0],J=t-H[1],K=u-H[0],L=v-H[1],M=1/Math.sin(Math.acos((I*K+J*L)/(Math.sqrt(I*I+J*J)*Math.sqrt(K*K+L*L)))/2),N=Math.sqrt(H[0]*H[0]+H[1]*H[1]);if(null!=u){var O=Math.min(o,(j-N)/(M+1)),P=mf(null==y?[w,x]:[y,z],[s,t],j,O,n),Q=mf([u,v],[w,x],j,O,n);o===O?C.push("M",P[0],"A",O,",",O," 0 0,",p," ",P[1],"A",j,",",j," 0 ",1-n^lf(P[1][0],P[1][1],Q[1][0],Q[1][1]),",",n," ",Q[1],"A",O,",",O," 0 0,",p," ",Q[0]):C.push("M",P[0],"A",O,",",O," 0 1,",p," ",Q[0])}else C.push("M",s,",",t);if(null!=y){var R=Math.min(o,(a-N)/(M-1)),S=mf([s,t],[y,z],a,-R,n),T=mf([w,x],null==u?[s,t]:[u,v],a,-R,n);o===R?C.push("L",T[0],"A",R,",",R," 0 0,",p," ",T[1],"A",a,",",a," 0 ",n^lf(T[1][0],T[1][1],S[1][0],S[1][1]),",",1-n," ",S[1],"A",R,",",R," 0 0,",p," ",S[0]):C.push("L",T[0],"A",R,",",R," 0 0,",p," ",S[0])}else C.push("L",w,",",x)}else C.push("M",s,",",t),null!=u&&C.push("A",j,",",j," 0 ",D,",",n," ",u,",",v),C.push("L",w,",",x),null!=y&&C.push("A",a,",",a," 0 ",F,",",1-n," ",y,",",z);return C.push("Z"),C.join("")}function b(a,b){return"M0,"+a+"A"+a+","+a+" 0 1,"+b+" 0,"+-a+"A"+a+","+a+" 0 1,"+b+" 0,"+a}var c=ff,d=gf,e=ef,f=zi,g=hf,h=jf,i=kf;return a.innerRadius=function(b){return arguments.length?(c=Aa(b),a):c},a.outerRadius=function(b){return arguments.length?(d=Aa(b),a):d},a.cornerRadius=function(b){return arguments.length?(e=Aa(b),a):e},a.padRadius=function(b){return arguments.length?(f=b==zi?zi:Aa(b),a):f},a.startAngle=function(b){return arguments.length?(g=Aa(b),a):g},a.endAngle=function(b){return arguments.length?(h=Aa(b),a):h},a.padAngle=function(b){return arguments.length?(i=Aa(b),a):i},a.centroid=function(){var a=(+c.apply(this,arguments)+ +d.apply(this,arguments))/2,b=(+g.apply(this,arguments)+ +h.apply(this,arguments))/2-Ig;return[Math.cos(b)*a,Math.sin(b)*a]},a};var zi="auto";bg.svg.line=function(){return nf(s)};var Ai=bg.map({linear:of,"linear-closed":pf,step:qf,"step-before":rf,"step-after":sf,basis:yf,"basis-open":zf,"basis-closed":Af,bundle:Bf,cardinal:vf,"cardinal-open":tf,"cardinal-closed":uf,monotone:Hf});Ai.forEach(function(a,b){b.key=a,b.closed=/-closed$/.test(a)});var Bi=[0,2/3,1/3,0],Ci=[0,1/3,2/3,0],Di=[0,1/6,2/3,1/6];bg.svg.line.radial=function(){var a=nf(If);return a.radius=a.x,delete a.x,a.angle=a.y,delete a.y,a},rf.reverse=sf,sf.reverse=rf,bg.svg.area=function(){return Jf(s)},bg.svg.area.radial=function(){var a=Jf(If);return a.radius=a.x,delete a.x,a.innerRadius=a.x0,delete a.x0,a.outerRadius=a.x1,delete a.x1,a.angle=a.y,delete a.y,a.startAngle=a.y0,delete a.y0,a.endAngle=a.y1,delete a.y1,a},bg.svg.chord=function(){function a(a,h){var i=b(this,f,a,h),j=b(this,g,a,h);return"M"+i.p0+d(i.r,i.p1,i.a1-i.a0)+(c(i,j)?e(i.r,i.p1,i.r,i.p0):e(i.r,i.p1,j.r,j.p0)+d(j.r,j.p1,j.a1-j.a0)+e(j.r,j.p1,i.r,i.p0))+"Z"}function b(a,b,c,d){var e=b.call(a,c,d),f=h.call(a,e,d),g=i.call(a,e,d)-Ig,k=j.call(a,e,d)-Ig;return{r:f,a0:g,a1:k,p0:[f*Math.cos(g),f*Math.sin(g)],p1:[f*Math.cos(k),f*Math.sin(k)]}}function c(a,b){return a.a0==b.a0&&a.a1==b.a1}function d(a,b,c){return"A"+a+","+a+" 0 "+ +(c>Fg)+",1 "+b}function e(a,b,c,d){return"Q 0,0 "+d}var f=rc,g=sc,h=Kf,i=hf,j=jf;return a.radius=function(b){return arguments.length?(h=Aa(b),a):h},a.source=function(b){return arguments.length?(f=Aa(b),a):f},a.target=function(b){return arguments.length?(g=Aa(b),a):g},a.startAngle=function(b){return arguments.length?(i=Aa(b),a):i},a.endAngle=function(b){return arguments.length?(j=Aa(b),a):j},a},bg.svg.diagonal=function(){function a(a,e){var f=b.call(this,a,e),g=c.call(this,a,e),h=(f.y+g.y)/2,i=[f,{x:f.x,y:h},{x:g.x,y:h},g];return i=i.map(d),"M"+i[0]+"C"+i[1]+" "+i[2]+" "+i[3]}var b=rc,c=sc,d=Lf;return a.source=function(c){return arguments.length?(b=Aa(c),a):b},a.target=function(b){return arguments.length?(c=Aa(b),a):c},a.projection=function(b){return arguments.length?(d=b,a):d},a},bg.svg.diagonal.radial=function(){var a=bg.svg.diagonal(),b=Lf,c=a.projection;return a.projection=function(a){return arguments.length?c(Mf(b=a)):b},a},bg.svg.symbol=function(){function a(a,d){return(Ei.get(b.call(this,a,d))||Pf)(c.call(this,a,d))}var b=Of,c=Nf;return a.type=function(c){return arguments.length?(b=Aa(c),a):b},a.size=function(b){return arguments.length?(c=Aa(b),a):c},a};var Ei=bg.map({circle:Pf,cross:function(a){var b=Math.sqrt(a/5)/2;return"M"+-3*b+","+-b+"H"+-b+"V"+-3*b+"H"+b+"V"+-b+"H"+3*b+"V"+b+"H"+b+"V"+3*b+"H"+-b+"V"+b+"H"+-3*b+"Z"},diamond:function(a){var b=Math.sqrt(a/(2*Gi)),c=b*Gi;return"M0,"+-b+"L"+c+",0 0,"+b+" "+-c+",0Z"},square:function(a){var b=Math.sqrt(a)/2;return"M"+-b+","+-b+"L"+b+","+-b+" "+b+","+b+" "+-b+","+b+"Z"},"triangle-down":function(a){var b=Math.sqrt(a/Fi),c=b*Fi/2;return"M0,"+c+"L"+b+","+-c+" "+-b+","+-c+"Z"},"triangle-up":function(a){var b=Math.sqrt(a/Fi),c=b*Fi/2;return"M0,"+-c+"L"+b+","+c+" "+-b+","+c+"Z"}});bg.svg.symbolTypes=Ei.keys();var Fi=Math.sqrt(3),Gi=Math.tan(30*Jg);wg.transition=function(a){for(var b,c,d=Hi||++Li,e=Uf(a),f=[],g=Ii||{time:Date.now(),ease:yd,delay:0,duration:250},h=-1,i=this.length;++hf;f++){e.push(b=[]);for(var c=this[f],h=0,i=c.length;i>h;h++)(d=c[h])&&a.call(d,d.__data__,h,f)&&b.push(d)}return Rf(e,this.namespace,this.id)},Ki.tween=function(a,b){var c=this.id,d=this.namespace;return arguments.length<2?this.node()[d][c].tween.get(a):R(this,null==b?function(b){b[d][c].tween.remove(a)}:function(e){e[d][c].tween.set(a,b)})},Ki.attr=function(a,b){function c(){this.removeAttribute(h)}function d(){this.removeAttributeNS(h.space,h.local)}function e(a){return null==a?c:(a+="",function(){var b,c=this.getAttribute(h);return c!==a&&(b=g(c,a),function(a){this.setAttribute(h,b(a))})})}function f(a){return null==a?d:(a+="",function(){var b,c=this.getAttributeNS(h.space,h.local);return c!==a&&(b=g(c,a),function(a){this.setAttributeNS(h.space,h.local,b(a))})})}if(arguments.length<2){for(b in a)this.attr(b,a[b]);return this}var g="transform"==a?Od:rd,h=bg.ns.qualify(a);return Sf(this,"attr."+a,b,h.local?f:e)},Ki.attrTween=function(a,b){function c(a,c){var d=b.call(this,a,c,this.getAttribute(e));return d&&function(a){this.setAttribute(e,d(a))}}function d(a,c){var d=b.call(this,a,c,this.getAttributeNS(e.space,e.local));return d&&function(a){this.setAttributeNS(e.space,e.local,d(a))}}var e=bg.ns.qualify(a);return this.tween("attr."+a,e.local?d:c)},Ki.style=function(a,c,d){function e(){this.style.removeProperty(a)}function f(c){return null==c?e:(c+="",function(){var e,f=b(this).getComputedStyle(this,null).getPropertyValue(a);return f!==c&&(e=rd(f,c),function(b){this.style.setProperty(a,e(b),d)})})}var g=arguments.length;if(3>g){if("string"!=typeof a){2>g&&(c="");for(d in a)this.style(d,a[d],c);return this}d=""}return Sf(this,"style."+a,c,f)},Ki.styleTween=function(a,c,d){function e(e,f){var g=c.call(this,e,f,b(this).getComputedStyle(this,null).getPropertyValue(a));return g&&function(b){this.style.setProperty(a,g(b),d)}}return arguments.length<3&&(d=""),this.tween("style."+a,e)},Ki.text=function(a){return Sf(this,"text",a,Tf)},Ki.remove=function(){var a=this.namespace;return this.each("end.transition",function(){var b;this[a].count<2&&(b=this.parentNode)&&b.removeChild(this)})},Ki.ease=function(a){var b=this.id,c=this.namespace;return arguments.length<1?this.node()[c][b].ease:("function"!=typeof a&&(a=bg.ease.apply(bg,arguments)),R(this,function(d){d[c][b].ease=a}))},Ki.delay=function(a){var b=this.id,c=this.namespace;return arguments.length<1?this.node()[c][b].delay:R(this,"function"==typeof a?function(d,e,f){d[c][b].delay=+a.call(d,d.__data__,e,f)}:(a=+a,function(d){d[c][b].delay=a}))},Ki.duration=function(a){var b=this.id,c=this.namespace;return arguments.length<1?this.node()[c][b].duration:R(this,"function"==typeof a?function(d,e,f){d[c][b].duration=Math.max(1,a.call(d,d.__data__,e,f))}:(a=Math.max(1,a),function(d){d[c][b].duration=a}))},Ki.each=function(a,b){var c=this.id,d=this.namespace;if(arguments.length<2){var e=Ii,f=Hi;try{Hi=c,R(this,function(b,e,f){Ii=b[d][c],a.call(b,b.__data__,e,f)})}finally{Ii=e,Hi=f}}else R(this,function(e){var f=e[d][c];(f.event||(f.event=bg.dispatch("start","end","interrupt"))).on(a,b)});return this},Ki.transition=function(){for(var a,b,c,d,e=this.id,f=++Li,g=this.namespace,h=[],i=0,j=this.length;j>i;i++){h.push(a=[]);for(var b=this[i],k=0,l=b.length;l>k;k++)(c=b[k])&&(d=c[g][e],Vf(c,k,g,f,{time:d.time,ease:d.ease,delay:d.delay+d.duration,duration:d.duration})),a.push(c)}return Rf(h,g,f)},bg.svg.axis=function(){function a(a){a.each(function(){var a,j=bg.select(this),k=this.__chart__||c,l=this.__chart__=c.copy(),m=null==i?l.ticks?l.ticks.apply(l,h):l.domain():i,n=null==b?l.tickFormat?l.tickFormat.apply(l,h):s:b,o=j.selectAll(".tick").data(m,l),p=o.enter().insert("g",".domain").attr("class","tick").style("opacity",Dg),q=bg.transition(o.exit()).style("opacity",Dg).remove(),r=bg.transition(o.order()).style("opacity",1),t=Math.max(e,0)+g,u=Le(l),v=j.selectAll(".domain").data([0]),w=(v.enter().append("path").attr("class","domain"),bg.transition(v));p.append("line"),p.append("text");var x,y,z,A,B=p.select("line"),C=r.select("line"),D=o.select("text").text(n),E=p.select("text"),F=r.select("text"),G="top"===d||"left"===d?-1:1;if("bottom"===d||"top"===d?(a=Wf,x="x",z="y",y="x2",A="y2",D.attr("dy",0>G?"0em":".71em").style("text-anchor","middle"),w.attr("d","M"+u[0]+","+G*f+"V0H"+u[1]+"V"+G*f)):(a=Xf,x="y",z="x",y="y2",A="x2",D.attr("dy",".32em").style("text-anchor",0>G?"end":"start"),w.attr("d","M"+G*f+","+u[0]+"H0V"+u[1]+"H"+G*f)),B.attr(A,G*e),E.attr(z,G*t),C.attr(y,0).attr(A,G*e),F.attr(x,0).attr(z,G*t),l.rangeBand){var H=l,I=H.rangeBand()/2;k=l=function(a){return H(a)+I}}else k.rangeBand?k=l:q.call(a,l,k);p.call(a,k,l),r.call(a,l,l)})}var b,c=bg.scale.linear(),d=Mi,e=6,f=6,g=3,h=[10],i=null;return a.scale=function(b){return arguments.length?(c=b,a):c},a.orient=function(b){return arguments.length?(d=b in Ni?b+"":Mi,a):d},a.ticks=function(){return arguments.length?(h=arguments,a):h},a.tickValues=function(b){return arguments.length?(i=b,a):i},a.tickFormat=function(c){return arguments.length?(b=c,a):b},a.tickSize=function(b){var c=arguments.length;return c?(e=+b,f=+arguments[c-1],a):e},a.innerTickSize=function(b){return arguments.length?(e=+b,a):e},a.outerTickSize=function(b){return arguments.length?(f=+b,a):f},a.tickPadding=function(b){return arguments.length?(g=+b,a):g},a.tickSubdivide=function(){return arguments.length&&a},a};var Mi="bottom",Ni={top:1,right:1,bottom:1,left:1};bg.svg.brush=function(){function a(b){b.each(function(){var b=bg.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",f).on("touchstart.brush",f),g=b.selectAll(".background").data([0]);g.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),b.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var h=b.selectAll(".resize").data(p,s);h.exit().remove(),h.enter().append("g").attr("class",function(a){return"resize "+a}).style("cursor",function(a){return Oi[a]}).append("rect").attr("x",function(a){return/[ew]$/.test(a)?-3:null}).attr("y",function(a){return/^[ns]/.test(a)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),h.style("display",a.empty()?"none":null);var i,l=bg.transition(b),m=bg.transition(g);j&&(i=Le(j),m.attr("x",i[0]).attr("width",i[1]-i[0]),d(l)),k&&(i=Le(k),m.attr("y",i[0]).attr("height",i[1]-i[0]),e(l)),c(l)})}function c(a){a.selectAll(".resize").attr("transform",function(a){return"translate("+l[+/e$/.test(a)]+","+m[+/^s/.test(a)]+")"})}function d(a){a.select(".extent").attr("x",l[0]),a.selectAll(".extent,.n>rect,.s>rect").attr("width",l[1]-l[0])}function e(a){a.select(".extent").attr("y",m[0]),a.selectAll(".extent,.e>rect,.w>rect").attr("height",m[1]-m[0])}function f(){function f(){32==bg.event.keyCode&&(D||(t=null,F[0]-=l[1],F[1]-=m[1],D=2),y())}function p(){32==bg.event.keyCode&&2==D&&(F[0]+=l[1],F[1]+=m[1],D=0,y())}function q(){var a=bg.mouse(v),b=!1;u&&(a[0]+=u[0],a[1]+=u[1]),D||(bg.event.altKey?(t||(t=[(l[0]+l[1])/2,(m[0]+m[1])/2]),F[0]=l[+(a[0]k?(e=d,d=k):e=k),p[0]!=d||p[1]!=e?(c?h=null:g=null,p[0]=d,p[1]=e,!0):void 0}function s(){q(),z.style("pointer-events","all").selectAll(".resize").style("display",a.empty()?"none":null),bg.select("body").style("cursor",null),G.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),E(),x({type:"brushend"})}var t,u,v=this,w=bg.select(bg.event.target),x=i.of(v,arguments),z=bg.select(v),A=w.datum(),B=!/^(n|s)$/.test(A)&&j,C=!/^(e|w)$/.test(A)&&k,D=w.classed("extent"),E=X(v),F=bg.mouse(v),G=bg.select(b(v)).on("keydown.brush",f).on("keyup.brush",p);if(bg.event.changedTouches?G.on("touchmove.brush",q).on("touchend.brush",s):G.on("mousemove.brush",q).on("mouseup.brush",s),z.interrupt().selectAll("*").interrupt(),D)F[0]=l[0]-F[0],F[1]=m[0]-F[1];else if(A){var H=+/w$/.test(A),I=+/^n/.test(A);u=[l[1-H]-F[0],m[1-I]-F[1]],F[0]=l[H],F[1]=m[I]}else bg.event.altKey&&(t=F.slice());z.style("pointer-events","none").selectAll(".resize").style("display",null),bg.select("body").style("cursor",w.style("cursor")),x({type:"brushstart"}),q()}var g,h,i=A(a,"brushstart","brush","brushend"),j=null,k=null,l=[0,0],m=[0,0],n=!0,o=!0,p=Pi[0];return a.event=function(a){a.each(function(){var a=i.of(this,arguments),b={x:l,y:m,i:g,j:h},c=this.__chart__||b;this.__chart__=b,Hi?bg.select(this).transition().each("start.brush",function(){g=c.i,h=c.j,l=c.x,m=c.y,a({type:"brushstart"})}).tween("brush:brush",function(){var c=sd(l,b.x),d=sd(m,b.y);return g=h=null,function(e){l=b.x=c(e),m=b.y=d(e),a({type:"brush",mode:"resize"})}}).each("end.brush",function(){g=b.i,h=b.j,a({type:"brush",mode:"resize"}),a({type:"brushend"})}):(a({type:"brushstart"}),a({type:"brush",mode:"resize"}),a({type:"brushend"}))})},a.x=function(b){return arguments.length?(j=b,p=Pi[!j<<1|!k],a):j},a.y=function(b){return arguments.length?(k=b,p=Pi[!j<<1|!k],a):k},a.clamp=function(b){return arguments.length?(j&&k?(n=!!b[0],o=!!b[1]):j?n=!!b:k&&(o=!!b),a):j&&k?[n,o]:j?n:k?o:null},a.extent=function(b){var c,d,e,f,i;return arguments.length?(j&&(c=b[0],d=b[1],k&&(c=c[0],d=d[0]),g=[c,d],j.invert&&(c=j(c),d=j(d)),c>d&&(i=c,c=d,d=i),(c!=l[0]||d!=l[1])&&(l=[c,d])),k&&(e=b[0],f=b[1],j&&(e=e[1],f=f[1]),h=[e,f],k.invert&&(e=k(e),f=k(f)),e>f&&(i=e,e=f,f=i),(e!=m[0]||f!=m[1])&&(m=[e,f])),a):(j&&(g?(c=g[0],d=g[1]):(c=l[0],d=l[1],j.invert&&(c=j.invert(c),d=j.invert(d)),c>d&&(i=c,c=d,d=i))),k&&(h?(e=h[0],f=h[1]):(e=m[0],f=m[1],k.invert&&(e=k.invert(e),f=k.invert(f)),e>f&&(i=e,e=f,f=i))),j&&k?[[c,e],[d,f]]:j?[c,d]:k&&[e,f])},a.clear=function(){return a.empty()||(l=[0,0],m=[0,0],g=h=null),a},a.empty=function(){return!!j&&l[0]==l[1]||!!k&&m[0]==m[1]},bg.rebind(a,i,"on")};var Oi={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Pi=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Qi=hh.format=nh.timeFormat,Ri=Qi.utc,Si=Ri("%Y-%m-%dT%H:%M:%S.%LZ");Qi.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Yf:Si,Yf.parse=function(a){var b=new Date(a);return isNaN(b)?null:b},Yf.toString=Si.toString,hh.second=Na(function(a){return new ih(1e3*Math.floor(a/1e3))},function(a,b){a.setTime(a.getTime()+1e3*Math.floor(b))},function(a){return a.getSeconds()}),hh.seconds=hh.second.range,hh.seconds.utc=hh.second.utc.range,hh.minute=Na(function(a){return new ih(6e4*Math.floor(a/6e4))},function(a,b){a.setTime(a.getTime()+6e4*Math.floor(b))},function(a){return a.getMinutes()}),hh.minutes=hh.minute.range,hh.minutes.utc=hh.minute.utc.range,hh.hour=Na(function(a){var b=a.getTimezoneOffset()/60;return new ih(36e5*(Math.floor(a/36e5-b)+b))},function(a,b){a.setTime(a.getTime()+36e5*Math.floor(b))},function(a){return a.getHours()}),hh.hours=hh.hour.range,hh.hours.utc=hh.hour.utc.range,hh.month=Na(function(a){return a=hh.day(a),a.setDate(1),a},function(a,b){a.setMonth(a.getMonth()+b)},function(a){return a.getMonth()}),hh.months=hh.month.range,hh.months.utc=hh.month.utc.range;var Ti=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ui=[[hh.second,1],[hh.second,5],[hh.second,15],[hh.second,30],[hh.minute,1],[hh.minute,5],[hh.minute,15],[hh.minute,30],[hh.hour,1],[hh.hour,3],[hh.hour,6],[hh.hour,12],[hh.day,1],[hh.day,2],[hh.week,1],[hh.month,1],[hh.month,3],[hh.year,1]],Vi=Qi.multi([[".%L",function(a){return a.getMilliseconds()}],[":%S",function(a){return a.getSeconds()}],["%I:%M",function(a){return a.getMinutes()}],["%I %p",function(a){return a.getHours()}],["%a %d",function(a){return a.getDay()&&1!=a.getDate()}],["%b %d",function(a){return 1!=a.getDate()}],["%B",function(a){return a.getMonth()}],["%Y",Cb]]),Wi={range:function(a,b,c){return bg.range(Math.ceil(a/c)*c,+b,c).map($f)},floor:s,ceil:s};Ui.year=hh.year,hh.scale=function(){return Zf(bg.scale.linear(),Ui,Vi)};var Xi=Ui.map(function(a){return[a[0].utc,a[1]]}),Yi=Ri.multi([[".%L",function(a){return a.getUTCMilliseconds()}],[":%S",function(a){return a.getUTCSeconds()}],["%I:%M",function(a){return a.getUTCMinutes()}],["%I %p",function(a){return a.getUTCHours()}],["%a %d",function(a){return a.getUTCDay()&&1!=a.getUTCDate()}],["%b %d",function(a){return 1!=a.getUTCDate()}],["%B",function(a){return a.getUTCMonth()}],["%Y",Cb]]);Xi.year=hh.year.utc,hh.scale.utc=function(){return Zf(bg.scale.linear(),Xi,Yi)},bg.text=Ba(function(a){return a.responseText}),bg.json=function(a,b){return Ca(a,"application/json",_f,b)},bg.html=function(a,b){return Ca(a,"text/html",ag,b)},bg.xml=Ba(function(a){return a.responseXML}),"function"==typeof define&&define.amd?define(bg):"object"==typeof module&&module.exports&&(module.exports=bg),this.d3=bg}(); //# sourceMappingURL=../../maps/libs/d3.js.map \ No newline at end of file diff --git a/static/scripts/libs/jquery/jquery.js b/static/scripts/libs/jquery/jquery.js index ef10a1b6b0a5..d56d11d7aad8 100644 --- a/static/scripts/libs/jquery/jquery.js +++ b/static/scripts/libs/jquery/jquery.js @@ -1,4 +1,4 @@ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b=a.length,c=ea.type(a);return"function"===c||ea.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(ea.isFunction(b))return ea.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return ea.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(ma.test(b))return ea.filter(b,a,c);b=ea.filter(b,a)}return ea.grep(a,function(a){return ea.inArray(a,b)>=0!==c})}function e(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}function f(a){var b=ua[a]={};return ea.each(a.match(ta)||[],function(a,c){b[c]=!0}),b}function g(){oa.addEventListener?(oa.removeEventListener("DOMContentLoaded",h,!1),a.removeEventListener("load",h,!1)):(oa.detachEvent("onreadystatechange",h),a.detachEvent("onload",h))}function h(){(oa.addEventListener||"load"===event.type||"complete"===oa.readyState)&&(g(),ea.ready())}function i(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(za,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:ya.test(c)?ea.parseJSON(c):c}catch(e){}ea.data(a,b,c)}else c=void 0}return c}function j(a){var b;for(b in a)if(("data"!==b||!ea.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function k(a,b,c,d){if(ea.acceptData(a)){var e,f,g=ea.expando,h=a.nodeType,i=h?ea.cache:a,j=h?a[g]:a[g]&&g;if(j&&i[j]&&(d||i[j].data)||void 0!==c||"string"!=typeof b)return j||(j=h?a[g]=W.pop()||ea.guid++:g),i[j]||(i[j]=h?{}:{toJSON:ea.noop}),("object"==typeof b||"function"==typeof b)&&(d?i[j]=ea.extend(i[j],b):i[j].data=ea.extend(i[j].data,b)),f=i[j],d||(f.data||(f.data={}),f=f.data),void 0!==c&&(f[ea.camelCase(b)]=c),"string"==typeof b?(e=f[b],null==e&&(e=f[ea.camelCase(b)])):e=f,e}}function l(a,b,c){if(ea.acceptData(a)){var d,e,f=a.nodeType,g=f?ea.cache:a,h=f?a[ea.expando]:ea.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){ea.isArray(b)?b=b.concat(ea.map(b,ea.camelCase)):b in d?b=[b]:(b=ea.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;for(;e--;)delete d[b[e]];if(c?!j(d):!ea.isEmptyObject(d))return}(c||(delete g[h].data,j(g[h])))&&(f?ea.cleanData([a],!0):ca.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}function m(){return!0}function n(){return!1}function o(){try{return oa.activeElement}catch(a){}}function p(a){var b=Ka.split("|"),c=a.createDocumentFragment();if(c.createElement)for(;b.length;)c.createElement(b.pop());return c}function q(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==xa?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==xa?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||ea.nodeName(d,b)?f.push(d):ea.merge(f,q(d,b));return void 0===b||b&&ea.nodeName(a,b)?ea.merge([a],f):f}function r(a){Ea.test(a.type)&&(a.defaultChecked=a.checked)}function s(a,b){return ea.nodeName(a,"table")&&ea.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function t(a){return a.type=(null!==ea.find.attr(a,"type"))+"/"+a.type,a}function u(a){var b=Va.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function v(a,b){for(var c,d=0;null!=(c=a[d]);d++)ea._data(c,"globalEval",!b||ea._data(b[d],"globalEval"))}function w(a,b){if(1===b.nodeType&&ea.hasData(a)){var c,d,e,f=ea._data(a),g=ea._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)ea.event.add(b,c,h[c][d])}g.data&&(g.data=ea.extend({},g.data))}}function x(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!ca.noCloneEvent&&b[ea.expando]){e=ea._data(b);for(d in e.events)ea.removeEvent(b,d,e.handle);b.removeAttribute(ea.expando)}"script"===c&&b.text!==a.text?(t(b).text=a.text,u(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),ca.html5Clone&&a.innerHTML&&!ea.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Ea.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}function y(b,c){var d,e=ea(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:ea.css(e[0],"display");return e.detach(),f}function z(a){var b=oa,c=_a[a];return c||(c=y(a,b),"none"!==c&&c||($a=($a||ea("